HTTP & HTTPS
HyperText Transfer Protocol
์ธํฐ๋ท ์์ ์ปค๋ฎค๋์ผ์ด์ ๋ฐฉ์
์น ์์์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ํ๋กํ ์ฝ
ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ์์ฒญ/์๋ต ํ๋กํ ์ฝ
HTTP
์๋๋ TCP ์ฌ์ฉํ๋ค๊ฐ http/3๋ถํฐ UDP(QUIC) ์ฌ์ฉ
ํฌํธ๋ฒํธ๋ 80
์น๋ธ๋ผ์ฐ์ ๊ฐ http๋ก ์๋ฒ๋ก๋ถํฐ html์ด๋ ์ ๋ณด๋ฅผ ์์ฒญํ๋ฉด ์๋ฒ๊ฐ ์ด์ ๋ํด ์๋ต์ผ๋ก ์ ๋ณด๋ฅผ ์ฌ์ฉ์์๊ฒ ์ ๋ฌ
http:๋ก ์์ํ๋ url๋ก ์กฐํ
HTTP ๋ฉ์ธ์ง
์ต์ด์ get๋ฉ์๋๋ง ์กด์ฌํ๊ณ ์๋ต์ ๋ฌด์กฐ๊ฑด html๋ก๋ง, ์์ฆ์ ์ข ๋ฅ๋ฅผ ๊ฐ๋ฆฌ์ง ์๋๋ค
์์ฒญ๊ณผ ์๋ต์ ํ๋ฌธ(์์คํค) ๋ฉ์ธ์ง๋ก ์ด๋ฃจ์ด์ง
๋ฉ์ธ์ง๋ ์์ฒญ ๋ด์ฉ + ํค๋ + ๋น์ค + ๋ฐ๋
์์ฒญ ๋ฉ์ธ์ง๋ ๋ฉ์๋+์์ฒญurl+http๋ฒ์ + ํค๋ + ๋ฐ๋
์๋ต ๋ฉ์ธ์ง๋ ๋ฒ์ +์ํ์ฝ๋+์ํ์ค๋ช + ํค๋ + ๋ฐ๋
http ๋ฉ์๋ ์ข ๋ฅ(์์ฒญ ๋ฐฉ์)๋ก๋ get(์์ฒญ), head, post(์์ฑ), put(๋ณ๊ฒฝ), delete(์ญ์ ), connect, options, trace, patch๊ฐ ์๋ค
GET
์๋ฒ์ ๋ฆฌ์์ค ์์ฒญ
HEAD
์๋ฒ์์ ์ด๋ค ๋ฌธ์์ ๋ํด ํค๋๋ง ์์ฒญ
POST
์๋ฒ๊ฐ ์ฒ๋ฆฌํ ๋ฐ์ดํฐ ๋ณด๋ด๊ธฐ
PUT
์๋ฒ์ ์์ฒญ ๋ฉ์ธ์ง์ ๋ณธ๋ฌธ ์ ์ฅ
TRACE
๋ฉ์ธ์ง๊ฐ ์ด๋ค ํ๋ก์๋ฅผ ๊ฑฐ์ณ ์๋ฒ์ ๋์ฐฉํ๋์ง ๊ณผ์
OPTIONS
์๋ฒ๊ฐ ์ํํ ์ ์๋ ๋ฉ์๋ ํ์ธ
DELETE
์๋ฒ์์ ๋ฌธ์ ์ ๊ฑฐ
์ํ์ฝ๋ ์ข ๋ฅ : ex) 200 OK, 400 Bad Request, 404 Not Found
๊ฐ๊ฐ์ ๋ฐ์ดํฐ ์์ฒญ์ด ์๋ก ๋ ๋ฆฝ์ ์ผ๋ก ๊ด๋ฆฌ
connectless์ stateless
์๋ฒ์ ์ฐ๊ฒฐํ๊ณ ์์ฒญํด์ ์๋ต์ ๋ฐ์ผ๋ฉด ์ฐ๊ฒฐ์ ๋๋๋ค (๋ฐ๋ก. FTP, Telnet)
์ฐ๊ฒฐ์ ์ต์ํ์ผ๋ก ์ ์งํ์ฌ ๋ง์ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๊ฒํ์ง๋ง ํด๋ผ์ด์ธํธ์ ์ด์ ์ํ๋ฅผ ๋ชฐ๋ผ http์์ ์ฟ ํค๋ฅผ ์ฌ์ฉ
์ฟ ํค - ํด๋ผ์ด์ธํธ์ ์๋ฒ์ ์ํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ์ ๋ณด ์กฐ๊ฐ
HTTP3
TCP๋ก ํต์ ํ๋ ๊ธฐ์กด์ HTTP/1๊ณผ HTTP/2์ ๋ฌ๋ฆฌ UDP ๊ธฐ๋ฐ์ QUIC(Quick UDP Internet Connection) ํ๋กํ ์ฝ๋ก ํต์ ํ๋์ ์์ฒญ์๋ต๋ง๋ค ํ๋์ tcp ์ฐ๊ฒฐ์ด ํ์ํด ๋ง์ ํธ๋์ ฐ์ดํฌ๊ฐ ํ์ํ๋ ๊ธฐ์กด ๋ฒ์ ์์ udp๋ฅผ ์ฌ์ฉํจ์ผ๋ก์ ํธ๋์ ฐ์ดํฌ ๊ณผ์ ์ ์์ ๊ณ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ์ฐ๊ฒฐ์ ์ ๋ขฐ์ฑ์ ํ๋ณด ๋ํ ํจํท ์์ค ๋์ ์ค๋ฒํค๋๋ ํผ ์ฅ์ : Zero RTT - ๊ธฐ๋ณธ TCP ์ฐ๊ฒฐ์ด 1RTT + tls๋ฅผ ์ด์ฉํ ์ํธํ๋ฅผ ์ํ tls ํธ๋์ ฐ์ดํฌ 2RTT์์ ์ฒซ ์ฐ๊ฒฐ ์ค์ ๋ 1RTT ์ดํ๋ ์บ์ ํ์ฉ (tls 1.3๋ถํด ๋น์ทํ ์ฑ๋ฅ ๊ฐ๋ฅ) ํจํท ์์ค์ ๋ํ ๋น ๋ฅธ ๋ฐ์ - ๋ฉํฐํ๋ ์ฑ(์ฌ๋ฌ ์คํธ๋ฆผ์ผ๋ก ๋๋์ด ํจํท ์์ค์ด ๋ฐ์ํด๋ ํด๋น ์คํธ๋ฆผ๋ง ์ฌ์ ์ก, http2๋ถํฐ ์ฌ์ฉ), ํจํท๋ง๋ค ๊ณ ์ ํจํท ๋ฒํธ ๋ถ์ฌํ์ฌ ๋น ๋ฅธ ํจํท ์์ค ๊ฐ์ง ์ฌ์ฉ์ IP๊ฐ ๋ฐ๋์ด๋ ์ฐ๊ฒฐ ์ ์ง - ip์ฃผ์์ ํฌํธ๋ก ์ฐ๊ฒฐ์ ์๋ณํ๋ tcp์ ๋ฌ๋ฆฌ ip์ฃผ์์๋ ๋ฌด๊ดํ connection id๋ฅผ ์ด์ฉํ์ฌ ์๋ฒ์ ์ฐ๊ฒฐํ์ฌ ํด๋ผ์ด์ธํธ์ ip๊ฐ ๋ณ๊ฒฝ๋์ด๋ ์ฐ๊ฒฐ์ ์ ์ง ์ธํฐ๋ท ์ฐ๊ฒฐ ์ํ๊ฐ ์ข์ง ๋ชปํ ๊ฒฝ์ฐ(wifi์์ ์ ๋ฃฐ๋ฌ๋ก, ๋ค๋ฅธ wifi๋ก ์ ํ)์์๋ https์ฐ๊ฒฐ์ด ์ ์ง๋์ด ๋์์์ ๋๊น ์์ด ์์ฒญ ๊ฐ๋ฅํ ์ ๋์ด๋ค. ํจํท ์ ์ก์ ์์ด์ ์ ์ฝ์ด ๊ฑฐ์ ์๋ ๋น์ฐ๊ฒฐ์ฑ ์ ์ก ๊ณ์ธต์ ๊ธฐ๋ฐ์ผ๋ก TCP ํ๋กํ ์ฝ์ ๋ฌด๊ฒฐ์ฑ ๋ณด์ฅ ์๊ณ ๋ฆฌ์ฆ๊ณผ SSL์ด ์ด์๋จ์ผ๋ก์จ ๋์ ์ฑ๋ฅ๊ณผ ๊ด์ฐฎ์ ์ ํ์ฑ๊ณผ ๋ถ์ธ๋ฐฉ์ง ํน์ฑ์ ์ถฉ์กฑ TLS(Transport Layer Security = SSL(secure sockets layer)) ์ํธํ ์ฌ์ฉ(์ ์ ์๋ช ์ด ํฌํจ๋ ์ธ์ฆ์, ๋ด์ฉ ์ํธํ)
HyperText Transfer Protocol over Security socket layer
์๋ ์์ด๋ ์น ํต์ ํ๋กํ ์ฝ์ธ http์ ๋ณด์ ๊ฐํ ๋ฒ์
ํต์ ์ ์ธ์ฆ๊ณผ ์ํธํ๋ฅผ ์ํด ์ฌ์ฉ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ํต์ ํ๋ ์ ๋ณด๋ฅผ ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ง ์์๋ณผ ์ ์๊ฒ ์ํธํ, ์ ๋ขฐํ ์ ์๋ ์ฌ์ดํธ์ธ์ง ๋ณด์ฅ
์์ผ ํต์ ์์ ์ผ๋ฐ ํ ์คํธ ๋์ ssl์ด๋ tls ํ๋กํ ์ฝ๋ก ์ธ์ ๋ฐ์ดํฐ๋ฅผ ์ํธํ
ํฌํธ๋ 443
์น ๋ธ๋ผ์ฐ์ ์ ๊ตฌํ ์ ํ๋์ ์๋ฒ ์ํํธ์จ์ด, ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ ๋ณดํธ ์์ค์ด ๋ค๋ฆ
htttps์ ํต์ ๋ฐฉ๋ฒ
๋์นญํค ๋ฐฉ์
์ํธํ์ ๋ณตํธํ์ ๋์ผํ ํค ์ฌ์ฉ
http๋ก ํต์ ํ ๋ ํค๊ฐ ๋ ธ์ถ๋๋ฏ๋ก ์์ชฝ์ด ๊ฐ์ ํค๋ฅผ ๋ณด์ ํ๋ ๊ฒ์ด ํ๋ฆ
๋น๋์นญํค(๊ณต๊ฐํค)
์ํธํ์ ๋ณตํธํ์ ์๋ก ๋ค๋ฅธ ํค ์ฌ์ฉ
๋ค๋ฅธ ์ฌ์ดํธ์ ๋ฉ์ธ์ง๋ฅผ ์ํ๋ ์ฌ์ดํธ์ ํค๋ก ๋ณตํธํํ ์ ์์ผ๋ฏ๋ก https์ ๋๊ฐ์ง ๊ธฐ๋ฅ ๋ชจ๋ ์ง์
https์ ํต์ ๋ฐฉ๋ฒ - ํธ๋์ ฐ์ดํฌ
๊ฐ์ฅ ๋จผ์ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ๋๋คํ ๋ฉ์ธ์ง(ClientHello)(tls๋ฒ์ , ์๋ฒ ๋๋ฉ์ธ, ์ธ์ ์๋ณ์, ์ํธ ์ค์ ) ์ ์ก
์๋ฒ๋ ๋๋คํ ๋ฉ์ธ์ง(ServerHello)(tls๋ฒ์ , ์ธ์ ์๋ณ์, ์ํธ ์ค์ )์ ํจ๊ป ์๋ฒ ์ธ์ฆ์(Certificate)๋ฅผ ๋ณด๋ธ๋ค
ํด๋ผ์ด์ธํธ๊ฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด CA์ ์๋ฒ ์ธ์ฆ์ ์ ๋ณด๋ฅผ ํ์ธํ๋ค
CA์ธ์ฆ๋ฐ์(์ฐ๋ฆฌ๊ฐ ์ํ๋ ์ ๋ขฐํ ์ ์๋) ์๋ฒ์ ์ธ์ฆ์๋ CA์ ๋น๊ณต๊ฐํค๋ก ์ํธํ ๋์ด์์ผ๋ฏ๋ก ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ๋ CA์ ๊ณต๊ฐํค๋ก ์๋ฒ ์ธ์ฆ์๋ฅผ ๋ณตํธํ ๊ฐ๋ฅ
ํด๋ผ์ด์ธํธ๋ ์์์ ์ฌ์ฉํ ๋ ๋ฉ์ธ์ง๋ก ์์ํค๋ฅผ ๋ง๋ค์ด ์๋ฒ๊ฐ ๋ณด๋ธ ์๋ฒ ์ธ์ฆ์์ ํฌํจ๋ ์๋ฒ์ ๊ณต๊ฐํค๋ก ์ํธํํ์ฌ ์๋ฒ์ ์ ์กํ๋ค.
๊ฐ๊ฐ ์์ํค๋ฅผ ์ด์ฉํ์ฌ ์ธ์ ํค๋ฅผ ์์ฑํ๊ณ ์์ผ๋ก์ ํต์ ์ ๋์นญํค๋ก ์ฌ์ฉํ๋ค
๋ชจ๋ ๋ฉ์ธ์ง๋ฅผ ๋น๋์นญํค๋ฅผ ์ด์ฉํ์ฌ ์ํธํํ๊ณ ๋ณตํธํํ๋ฉด ์ข๊ฒ ์ง๋ง ๋น์ฉ์ด ๋ง์ด ๋๋ฏ๋ก ๋ฉ์ธ์ง๋ ๋์นญํค๋ก ์ํธ๋ณตํธ
Last updated