# HTTP & HTTPS
# HTTP(HyperText Transfer Protocol)
์ธํฐ๋ท ์์์ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์์์ ์ฃผ๊ณ ๋ฐ์ ๋ ์ฐ๋ ํต์ ๊ท์ฝ
HTTP๋ ํ ์คํธ ๊ตํ์ด๋ฏ๋ก, ๋๊ตฐ๊ฐ ๋คํธ์ํฌ์์ ์ ํธ๋ฅผ ๊ฐ๋ก์ฑ๋ฉด ๋ด์ฉ์ด ๋ ธ์ถ๋๋ ๋ณด์ ์ด์๊ฐ ์กด์ฌํ๋ค.
์ด๋ฐ ๋ณด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ฃผ๋ ํ๋กํ ์ฝ์ด 'HTTPS'
# HTTPS(HyperText Transfer Protocol Secure)
์ธํฐ๋ท ์์์ ์ ๋ณด๋ฅผ ์ํธํํ๋ SSL ํ๋กํ ์ฝ์ ์ฌ์ฉํด ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์์์ ์ฃผ๊ณ ๋ฐ์ ๋ ์ฐ๋ ํต์ ๊ท์ฝ
HTTPS๋ ํ ์คํธ๋ฅผ ์ํธํํ๋ค. (๊ณต๊ฐํค ์ํธํ ๋ฐฉ์์ผ๋ก)
# HTTPS ํต์ ํ๋ฆ
์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ(A)๋ฅผ ๋ง๋๋ ๊ธฐ์ ์ HTTPS๋ฅผ ์ ์ฉํ๊ธฐ ์ํด ๊ณต๊ฐํค์ ๊ฐ์ธํค๋ฅผ ๋ง๋ ๋ค.
์ ๋ขฐํ ์ ์๋ CA ๊ธฐ์ ์ ์ ํํ๊ณ , ๊ทธ ๊ธฐ์ ์๊ฒ ๋ด ๊ณต๊ฐํค ๊ด๋ฆฌ๋ฅผ ๋ถํํ๋ฉฐ ๊ณ์ฝ์ ํ๋ค.
CA๋? : Certificate Authority๋ก, ๊ณต๊ฐํค๋ฅผ ์ ์ฅํด์ฃผ๋ ์ ๋ขฐ์ฑ์ด ๊ฒ์ฆ๋ ๋ฏผ๊ฐ๊ธฐ์
๊ณ์ฝ ์๋ฃ๋ CA ๊ธฐ์ ์ ํด๋น ๊ธฐ์ ์ ์ด๋ฆ, A์๋ฒ ๊ณต๊ฐํค, ๊ณต๊ฐํค ์ํธํ ๋ฐฉ๋ฒ์ ๋ด์ ์ธ์ฆ์๋ฅผ ๋ง๋ค๊ณ , ํด๋น ์ธ์ฆ์๋ฅผ CA ๊ธฐ์ ์ ๊ฐ์ธํค๋ก ์ํธํํด์ A์๋ฒ์๊ฒ ์ ๊ณตํ๋ค.
A์๋ฒ๋ ์ํธํ๋ ์ธ์ฆ์๋ฅผ ๊ฐ๊ฒ ๋์๋ค. ์ด์ A์๋ฒ๋ A์๋ฒ์ ๊ณต๊ฐํค๋ก ์ํธํ๋ HTTPS ์์ฒญ์ด ์๋ ์์ฒญ์ด ์ค๋ฉด, ์ด ์ํธํ๋ ์ธ์ฆ์๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๊ฑด๋ด์ค๋ค.
ํด๋ผ์ด์ธํธ๊ฐ
main.html
ํ์ผ์ ๋ฌ๋ผ๊ณ A์๋ฒ์ ์์ฒญํ๋ค๊ณ ๊ฐ์ ํ์. HTTPS ์์ฒญ์ด ์๋๊ธฐ ๋๋ฌธ์ CA๊ธฐ์ ์ด A์๋ฒ์ ์ ๋ณด๋ฅผ CA ๊ธฐ์ ์ ๊ฐ์ธํค๋ก ์ํธํํ ์ธ์ฆ์๋ฅผ ๋ฐ๊ฒ ๋๋ค.
CA ๊ธฐ์ ์ ๊ณต๊ฐํค๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ฏธ ์๊ณ ์๋ค. (์ธ๊ณ์ ์ผ๋ก ์ ๋ขฐํ ์ ์๋ ๊ธฐ์ ์ผ๋ก ๋ฑ๋ก๋์ด ์๊ธฐ ๋๋ฌธ์, ๋ธ๋ผ์ฐ์ ๊ฐ ์ธ์ฆ์๋ฅผ ํ์ํ์ฌ ํด๋ ์ด ๊ฐ๋ฅํ ๊ฒ)
๋ธ๋ผ์ฐ์ ๋ ํด๋ ํ ๋ค A์๋ฒ์ ๊ณต๊ฐํค๋ฅผ ์ป๊ฒ ๋์๋ค.
ํด๋ผ์ด์ธํธ๊ฐ A์๋ฒ์ HandShaking ๊ณผ์ ์์ ์ฃผ๊ณ ๋ฐ์ ๋์๋ฅผ ์กฐํฉํ์ฌ pre-master-key(๋์นญํค) ๋ฅผ ์์ฑํ ๋ค, A์๋ฒ์ ๊ณต๊ฐํค๋ก ํด๋น ๋์นญํค๋ฅผ ์ํธํํ์ฌ ์๋ฒ๋ก ๋ณด๋ ๋๋ค.
A์๋ฒ๋ ์ํธํ๋ ๋์นญํค๋ฅผ ์์ ์ ๊ฐ์ธํค๋ก ๋ณตํธํ ํ์ฌ ํด๋ผ์ด์ธํธ์ ๋์ผํ ๋์นญํค๋ฅผ ํ๋ํฉ๋๋ค.
์ดํ ํด๋ผ์ด์ธํธ-์๋ฒ์ฌ์ด์ ํต์ ์ ํ ๋ ์ฃผ๊ณ ๋ฐ๋ ๋ฉ์ธ์ง๋ ์ด pre-master-key(๋์นญํค)๋ฅผ ์ด์ฉํ์ฌ ์ํธํ, ๋ณตํธํ๋ฅผ ์งํํฉ๋๋ค.
HTTPS๋ ๋ฌด์กฐ๊ฑด ์์ ํ ๊ฒ์ ์๋๋ค. (์ ๋ขฐ๋ฐ๋ CA ๊ธฐ์ ์ด ์๋ ์์ฒด ์ธ์ฆ์ ๋ฐ๊ธํ ๊ฒฝ์ฐ ๋ฑ)
์ด๋๋ HTTPS์ง๋ง ๋ธ๋ผ์ฐ์ ์์ ์ฃผ์ ์ํจ
, ์์ ํ์ง ์์ ์ฌ์ดํธ
์ ๊ฐ์ ์๋ฆผ์ผ๋ก ์ฃผ์ ๋ฐ๊ฒ ๋๋ค.