๐งฃ HTTP๋?
HyperText Transfer Protocol
ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ๊ท์น(ํ๋กํ ์ฝ)์ด๋ค.
์ฌ๊ธฐ์ ๋ฐ์ดํฐ๋ ํ
์คํธ, ์ด๋ฏธ์ง, ๋์์ ๋ฑ ๋ชจ๋ ์ข
๋ฅ๋ฅผ ๋งํ๋ค.
HTTP ์ข ๋ฅ์๋ TCP ์ UDP ๋ฐฉ์์ด ์์ผ๋ฉฐ 80 ํฌํธ๋ฅผ ์ฌ์ฉํ๋ค.
TCP
Transmission Control Protocol.
1:1 ์ฐ๊ฒฐ์ ์งํฅํ๋ฉฐ ์ ๋ขฐํ ์ ์๋ ํต์ ์ ์ ๊ณตํ๋ค.
์ฌ๊ธฐ์ 1:1์ ๊ฐ๊ฐ ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ฅผ ์๋ฏธํ๋ค.
์ ๋จ์ ์ฐ๊ฒฐ์ ์๋ฆฝํ ๋ค ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ณ ์ฐ๊ฒฐ์ ์ข
๋ฃํ๋ค.
์ผ๋ฐ์ ์ธ HTTP ํต์ ์ TCP ๋ฐฉ์์ ๋ฐ๋ฅด๊ณ ์๋ค.
UDP
User Datagram Protocol.
1:1 ํน์ 1:N ๋น์ฐ๊ฒฐ์ ์งํฅํ๋ฉฐ ์ ๋ขฐํ ์ ์๋ ํต์ ์ ์ ๊ณตํ๋ค.
์ฌ๊ธฐ์ '๋น์ฐ๊ฒฐ' ์ด๋ผ๋ ๋ง์, ๋ง ๊ทธ๋๋ก ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐ๋์ด ์์ง ์๋ค๋ ๋ป์ด๋ค.
TCP ์ ๋ฌ๋ฆฌ ์ฐ๊ฒฐ ์ค์ ๊ณผ์ ์ด ํ์ ์๊ณ , ๋จ์ง ์์ผ์ ์์ฑ๊ณผ ๋ฐ์ดํฐ ์ก์์ ๊ณผ์ ๋ง ์กด์ฌํ๋ค.
TCP ์ ๋น๊ตํ์ ๋ ์ ๋ขฐํ ์ ์์ง๋ง ์ฐ๊ฒฐ ์๋ฆฝ์ ํ์ํ ๋ถํ๊ฐ ์๊ณ ๋ณด๋ค ๋น ๋ฅด๋ค.
UDP๋ ํธ์ง์ ๊ฐ๋ค. ํธ์ง๋ฅผ ๋ณด๋ด๊ธฐ ์ํด์ ํธ์ง๋ดํฌ์ ๋ณด๋ด๋ ์ฌ๋๊ณผ ๋ฐ๋ ์ฌ๋์ ์ฃผ์ ์ ๋ณด๋ฅผ ์จ์ผํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐํ๋ฅผ ๋ถ์ฌ์ ์ฐ์ฒดํต์ ๋ฃ์ผ๋ฉด ๋์ด๋ค.
๋์ ํธ์ง์ ํน์ฑ์ ํธ์ง๋ฅผ ๋ณด๋ด๊ณ ๋์ ์๋๋ฐฉ์ ์์ ์ฌ๋ถ๋ฅผ ํ์ธํ ๋ฐฉ๋ฒ์ ์๋ค.
TCP | UDP |
---|---|
๋ฉ์์ง ์์ ํ์ธ ๊ฐ๋ฅ | ๋ฉ์์ง ์์ ํ์ธ ๋ถ๊ฐ |
๋ฉ์์ง๊ฐ ๋ณด๋ด์ง ์์๋ฅผ ๋ณด์ฅํ๊ธฐ ์ํด ์ฌ์กฐ๋ฆฝ | ๋ฉ์์ง ๋์ฐฉ ์์๋ฅผ ์์ธกํ ์ ์๋ค. |
UDP ๋ณด๋ค ์๋๊ฐ ๋๋ฆฌ๋ค. | TCP ๋ณด๋ค ์๋๊ฐ ๋น ๋ฅด๊ณ ์ค๋ฒํค๋๊ฐ ์ ๋ค. |
ํต์ ์ ์์ ์ฑ ๋ฐ ์์ฐจ์ ์ธ ์ ๋ฌ์ด ํ์ํ ๊ฒฝ์ฐ์ ์ฌ์ฉ | ์ค๋ฅ์ ๊ฒ์ฌ ๋ฐ ์์ ์ด ํ์ ์๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ. ex) DNS, VOIP, ์จ๋ผ์ธ๊ฒ์ ๋ฑ |
๐ก ์ฐธ๊ณ
DNS๋?
์ธํฐ๋ท์์๋ ์ปดํจํฐ๋ฅผ ์๋ณํ๊ธฐ ์ํด IP ์ฃผ์๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ด ์ซ์๋ง์ผ๋ก๋ ๋ฌด์์ ์ฌ์ฉ๋๊ณ ์๋์ง ์ ์ ์๋ค.
๊ทธ๋์ ์ธํฐ๋ท์์๋ IP ์ฃผ์์ ๋๋ฉ์ธ๋ช
์ด๋ผ๋ ์ด๋ฆ์ ๋ถํ ์๊ธฐ ์ฝ๊ฒ ํ๋ค.
IP ์ฃผ์์ ๋๋ฉ์ธ๋ช
์ ์๋ก ๊ตํํ๋ ์ฅ์น๋ฅผ DNS(Domain Name System)์ด๋ผ๊ณ ํ๋ค.
DNS ์๋ฒ๋ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๋์ด ์๋ค. (์์ธํ)
๐งฃ HTTP ๋ฉ์์ง ๊ตฌ์กฐ
- Request Message
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ๋ณด๋ด๋ ๋ฉ์์ง
- Response Messgae
- ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ๋ณด๋ด๋ ๋ฉ์์ง
Request Message
Header
- GET /HTTP/1.1
- HTTP ์ ์ก ๋ฐฉ๋ฒ๊ณผ ํ๋กํ ์ฝ ๋ฒ์
- Host
- ์์ฒญํ๋ ์๋ฒ ์ฃผ์
- User-Agent
- OS/๋ธ๋ผ์ฐ์ ์ ๋ณด
- Accept
- ํด๋ผ์ด์ธํธ๊ฐ ์ดํด ๊ฐ๋ฅํ ์ปจํ ์ธ ํ์
- Accept Language
- ํด๋ผ์ด์ธํธ ์ธ์ ์ธ์ด
- Accept-Encoding
- ํด๋ผ์ด์ธํธ ์ธ์ฝ๋ฉ ๋ฐฉ๋ฒ
- Connection
- ์ ์ก ์๋ฃ ํ ์ ์ ์ ์ง ์ ๋ณด(keep-alive)
- Content-Type
- ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐํ๋์ด์ผํ๋ ์ปจํ ์ธ ์ ํ
- Content-Length
- ๋ณธ๋ฌธํฌ๊ธฐ
Body
๋ณธ๋ฌธ์ ์์ฒญ์ ๋ง์ง๋ง ๋ถ๋ถ์ ๋ค์ด๊ฐ๋ค.
๋ชจ๋ ์์ฒญ์ ๋ณธ๋ฌธ์ด ๋ค์ด๊ฐ์ง๋ ์๋๋ค.
GET, HEAD, DELETE ์ฒ๋ผ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ ธ์ค๋ ์์ฒญ์ ๋ณดํต ๋ณธ๋ฌธ์ด ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ Body ๊ฐ ์๋ค.
POST, PUT, PATCH ๋ ์
๋ฐ์ดํธ๋ฅผ ์ํด ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ฏ๋ก Body ๊ฐ ์กด์ฌํ๋ค.
Response Message
Header
- HTTP/1.1 200 ok
- ํ๋กํ ์ฝ ๋ฒ์ ๊ณผ ์๋ต์ํ
- Access-Control-Allow-Origin
- ์๋ฒ์ ํ ์ฌ์ดํธ์ ์ ๊ทผ์ ์ ํํ๋ ๋ฐฉ์นจ
- Connection
- ์ ์ก ์๋ฃํ ์ ์ ์ ์ง ์ ๋ณด (keep-alive)
- Content-Encoding
- ๋ฏธ๋์ด ํ์ ์ ์์ถํ ๋ฐฉ๋ฒ
- Date
- ํค๋๊ฐ ๋ง๋ค์ด์ง ์๊ฐ
- ETag
- ๋ฒ์ ์ ๋ฆฌ์์ค๋ฅผ ์๋ณํ๋ ์๋ณ์
- Keep-Alive
- ์ฐ๊ฒฐ์๋ํ ํ์์์๊ณผ ์์ฒญ ์ต๋ ๊ฐ์ ์ ๋ณด
- Last-Modified
- ์น ์๊ฐ์ ๊ฐ์ง๊ณ ์๋ค ์์ ๋์์๋๋ง ๋ฐ์ดํฐ ๋ณ๊ฒฝ (์บ์์ฐ๊ด)
- Server
- ์น์๋ฒ๋ก ์ฌ์ฉ๋๋ ํ๋ก๊ทธ๋จ ์ด๋ฆ
- Set-Cookie
- ์ฟ ํค ์ ๋ณด
- Transfer-Encoding
- ์ธ์ฝ๋ฉ ํ์ ์ง์
- X-Frame-Options
- frame/iframe/object ํ์ฉ ์ฌ๋ถ
Body
๋ณธ๋ฌธ์ ์๋ต์ ๋ง์ง๋ง ๋ถ๋ถ์ ๋ค์ด๊ฐ๋ค.
๋ชจ๋ ์๋ต์ ๋ณธ๋ฌธ์ด ๋ค์ด๊ฐ์ง๋ ์๋๋ค.
201, 204๊ณผ ๊ฐ์ ์ํ ์ฝ๋๋ฅผ ๊ฐ์ง ์๋ต์๋ ๋ณดํต ๋ณธ๋ฌธ์ด ์๋ค.
๐งฃ TCP Handshake
TCP ๋ฐฉ์์์ ์ฐ๊ฒฐ ๊ณผ์ ์ด ํ์ํ๋ค๊ณ ์์์ ์ธ๊ธํ์๋ค.
์ด ๋, ์ฐ๊ฒฐ์ ์๋ฆฝํ ๋๋ 3way-HandShake,
์ฐ๊ฒฐ์ ์ข
๋ฃํ ๋๋ 4way-HandShake๋ฅผ ์ฌ์ฉํ๋ค.
HandShake ๋ ์ง์ญํ๋ฉด '์
์'๋ผ๋ ๋ป์ด๋ค.
๋ง์น ์ฐ๋ฆฌ๊ฐ ๋ค๋ฅธ ์ฌ๋๊ณผ์ ์ฒซ ๋ง๋จ์์ ๋ง๋์ ์
์๋ฅผ ์์ฒญํ๊ณ ์
์๋ฅผ ๋ฐ๋ฏ์ด,
์ ์์ ์ธ ํต์ ์ ํ๊ธฐ ์ ์, ์ผ๋ จ์ ๊ณผ์ ์ ๊ฑฐ์ณ ์ฐ๊ฒฐ์ ์ฑ๋ฆฝ์ํค๋ ๊ฒ์ ๋งํ๋ค.
3 way HandShake
3 way HandShake์ ์ด ์ธ ๊ฐ์ง ๊ณผ์ ์ด ์กด์ฌํ๋ค.
์ฝ๊ฒ ์๋์ ๊ฐ์ด ํํํ ์ ์๊ฒ ๋ค.
A ๐ B : ๋ด ๋ง ๋ค๋ ค?
B ๐ A : ์ ๋ค๋ ค. ๋ด ๋ง์ ๋ค๋ ค?
A ๐ B : ์ ๋ค๋ ค!
- ํด๋ผ์ด์ธํธ๋ ์ ์์ ์์ฒญํ๋ SYN ํจํท์ ๋ณด๋ธ๋ค. ์ด ๋, ํด๋ผ์ด์ธํธ๋ SYN ํจํท์ ๋ณด๋๊ณผ ๋์์ SYN/ACK ์๋ต์ ๊ธฐ๋ค๋ฆฌ๊ธฐ ์ํด SYN_SENT ์ํ๋ก ๋ณํ๊ฒ ๋๋ค.
- ์๋ฒ๋ SYN ์์ฒญ์ ๋ฐ๊ณ ํด๋ผ์ด์ธํธ์๊ฒ ์์ฒญ์ ์๋ฝํ๋ ACK ํจํท๊ณผ SYN ํจํท์ ๋ณด๋ด๊ณ SYN_RCVD(SYN_RECEIVED) ์ํ๋ก ๋ณํ์ฌ ํด๋ผ์ด์ธํธ๊ฐ ACK ํจํท์ ๋ณด๋ผ ๋ ๊น์ง ๊ธฐ๋ค๋ฆฌ๊ฒ ๋๋ค.
- ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ACK ํจํท์ ๋ณด๋ด๊ณ ์ด ํ ESTABLISHED ์ํ๊ฐ ๋์ด ๋ฐ์ดํฐ ํต์ ์ด ๊ฐ๋ฅํ๊ฒ ๋๋ค.
๊ฐ ๊ณผ์ ์์ ์ฌ์ฉ๋๋ ์ฉ์ด๋ ์๋์ ๊ฐ๋ค.
- SYN
- synchronize sequence numbers
์ฐ๊ฒฐ ํ์ธ์ ์ํด ๋ณด๋ด๋ ๋ฌด์์ ์ซ์๊ฐ. (๋ด ๋ง ์ ๋ค๋ ค?)
- synchronize sequence numbers
- ACK
- acknowledgements.
์ง์ญํ๋ฉด '์ธ์ ํ๋ค'๋ผ๋ ๋ป์ด๋ค.
Client ํน์ Server๋ก ๋ถํฐ ๋ฐ์ SYN์ 1d์ ๋ํด SYN์ ์ ๋ฐ์๋ค๋ ACK. (์ ๋ค๋ ค!)
- acknowledgements.
- ISN
- initial sequence numbers.
Client์ Server๊ฐ ๊ฐ๊ฐ ์ฒ์์ผ๋ก ์์ฑํ SYN.
- initial sequence numbers.
- CLOSED
- ์ฐ๊ฒฐ ์๋ฆฝ์ ์์ํ๊ธฐ ์ ์ ๊ธฐ๋ณธ ์ํ
- LISTEN
- ํฌํธ๊ฐ ์ด๋ฆฐ ์ํ๋ก ์ฐ๊ฒฐ ์์ฒญ ๋๊ธฐ ์ค
- SYN-SENT
- SYN ์์ฒญ์ ํ ์ํ
- SYN-RECEIVED
- SYN ์์ฒญ์ ๋ฐ๊ณ ์๋๋ฐฉ์ ์๋ต์ ๊ธฐ๋ค๋ฆฌ๋ ์ค
- ESTABLISHED
- ์ฐ๊ฒฐ์ ์๋ฆฝ์ด ์๋ฃ๋ ์ํ.
์๋ก ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ์ ์๋ค.
- ์ฐ๊ฒฐ์ ์๋ฆฝ์ด ์๋ฃ๋ ์ํ.
4 way HandShake
์ฐ๊ฒฐ์ ๋์ ๋ 4 way Handshake ๊ณผ์ ์ ๊ฑฐ์น๋ค.
๊ณผ์ ์ ์ฝ๊ฒ ํํํ๋ฉด ์๋์ ๊ฐ๋ค.
A ๐ B : ๋๋ ๋ค ๋ณด๋์ด. ์ด์ ๋์!
B ๐ A : ์๊ฒ ์ด! ์ ์๋ง~
B ๐ A : ๋๋ ๋์๊ฒ!
A ๐ B : ์๊ฒ ์ด!
- ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ TCP ์ฐ๊ฒฐ์ด ๋์ด์๋ ์ํ์์ ํด๋ผ์ด์ธํธ๊ฐ ์ ์์ ๋๊ธฐ ์ํด CLOSE() ํจ์๋ฅผ ํธ์ถํ๊ฒ ๋๋ค. ์ด ํ CLOSE() ํจ์๋ฅผ ํธ์ถํ๋ฉด์ FIN segment ๋ฅผ ๋ณด๋ด๊ฒ ๋๊ณ ํด๋ผ์ด์ธํธ๋ FIN_WAIT1 ์ํ๋ก ๋ณํ๊ฒ ๋๋ค.
- ์๋ฒ๋ ํด๋ผ์ด์ธํธ๊ฐ CLOSE() ํ๋ค๋ ๊ฒ์ ์๊ฒ ๋๊ณ CLOSE_WAIT ์ํ๋ก ๋ฐ๊พผ ํ ACK segment ๋ฅผ ์ ์กํ๋ค. ์ฆ, ํด๋ผ์ด์ธํธ๊ฐ ๋์ ๊ฒ์ด๋ผ๋ ์ ํธ๋ฅผ ๋ฐ์๋ค๋ ์๋ฏธ์ด๊ณ CLOSE_WAIT ๋ฅผ ํตํด ์์ ์ ํต์ ์ด ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ์ํ๊ฐ ๋๋ค.
- ACK segment๋ฅผ ๋ฐ์ ํด๋ผ์ด์ธํธ๋ FIN_WAIT2 ๋ก ๋ณํ๋๊ณ ์ด ๋ ์๋ฒ๋ CLOSE() ํจ์๋ฅผ ํธํํ๊ณ FIN segment ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ธ๋ค.
- ์๋ฒ๋ ์ฐ๊ฒฐ์ ๋ซ์๋ค๋ ์ ํธ๋ฅผ ํด๋ผ์ด์ธํธ๊ฐ ์์ ํ๋ฉด ACK segment ๋ฅผ ๋ณด๋ธ ํ TIME_WAIT ์ํ๋ก ์ ํ๋๋ค. ์ด ํ ๋ชจ๋ ๊ฒ์ด ๋๋๋ฉด CLOSED ์ํ๋ก ๋ณํ๋๋ค.
๊ฐ ๊ณผ์ ์์ ์ฌ์ฉ๋๋ ์ฉ์ด๋ ์๋์ ๊ฐ๋ค.
- CLOSE
- ์ฐ๊ฒฐ ์๋ฆฝ์ ์์ํ๊ธฐ ์ ์ ๊ธฐ๋ณธ ์ํ (์ฐ๊ฒฐ ์์)
- ESTABLISHED
- ์ฐ๊ฒฐ์ ์๋ฆฝ์ด ์๋ฃ๋ ์ํ, ์๋ก ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ์ ์๋ค.
- CLOSE-WAIT
- ์๋๋ฐฉ์ FIN(์ข ๋ฃ ์์ฒญ)์ ๋ฐ์ ์ํ. ์๋๋ฐฉ FIN์ ๋ํ ACK๋ฅผ ๋ณด๋ด๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ข ๋ฃ๋ฅผ ์๋ฆฐ๋ค.
- LAST-ACK
- CLOSE-WAIT ์ํ๋ฅผ ์ฒ๋ฆฌ ํ ์์ ์ FIN์์ฒญ์ ๋ณด๋ธ ํ FIN์ ๋ํ ACK๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ.
- FIN-WAIT-1
- ์์ ์ด ๋ณด๋ธ FIN์ ๋ํ ACK๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ฑฐ๋ ์๋๋ฐฉ์ FIN์ ๊ธฐ๋ค๋ฆฐ๋ค.
- FIN-WAIT-2
- ์์ ์ด ๋ณด๋ธ FIN์ ๋ํ ACK๋ฅผ ๋ฐ์๊ณ ์๋๋ฐฉ์ FIN์ ๊ธฐ๋ค๋ฆฐ๋ค.
- CLOSING
- ์๋๋ฐฉ์ FIN์ ACK๋ฅผ ๋ณด๋์ง๋ง ์์ ์ FIN์ ๋ํ ACK๋ฅผ ๋ชป๋ฐ์ ์ํ
- TIME-WAIT
- ๋ชจ๋ FIN์ ๋ํ ACK๋ฅผ ๋ฐ๊ณ ์ฐ๊ฒฐ ์ข ๋ฃ๊ฐ ์๋ฃ๋ ์ํ. ์ ์ฐ๊ฒฐ๊ณผ ๊ฒน์น์ง ์๋๋ก ์ผ์ ์๊ฐ ๋์ ๊ธฐ๋ค๋ฆฐ ํ CLOSED๋ก ์ ์ดํ๋ค.
๐งฃ HTTP ํต์ ๊ณผ์
1๏ธโฃ ๋ธ๋ผ์ฐ์ ์์ URL์ ๋ถ์ํ์ฌ HTTP Request ๋ฉ์์ง๋ฅผ ๋ง๋ค๊ณ ์น ์๋ฒ๋ก ์ ์กํ๋ค.
์ด ๋, ๋ธ๋ผ์ฐ์ ๋ OS๋ฅผ ํตํด ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๋๋ฐ ์ด๋๋ก ๋ณด๋ผ ์ง๋ IP ์ฃผ์๋ก ์ง์ ํด์ผํ๋ค.
์ด ๊ณผ์ ์์ ์น ์๋ฒ์ ๋๋ฉ์ธ ๋ช
์ DNS ์๋ฒ์ ์กฐํํ์ฌ IP ์ฃผ์๋ฅผ ์ป๋๋ค.
2๏ธโฃ ํ๋กํ ์ฝ ์คํ(์ด์์ฒด์ ์ ๋ด์ฅ๋ ๋คํธ์ํฌ ์ ์ด์ฉ ์ํํธ์จ์ด)์ ๋ธ๋ผ์ฐ์ ๋ก๋ถํฐ ๋ฐ์ ๋ฉ์์ง๋ฅผ ํจํท ์์ ์ ์ฅํ ๋ค LAN ์ด๋ํฐ๋ฅผ ํตํด ํจํท์ LAN ์ผ์ด๋ธ๋ก ์ก์ถํ๋ค.
3๏ธโฃ LAN ์ด๋ํฐ๊ฐ ์ก์ ํ ํจํท์ ์ค์์นญ ํ๋ธ๋ฅผ ๊ฒฝ์ ํ์ฌ ์ธํฐ๋ท ์ ์์ฉ ๋ผ์ฐํฐ์ ๋์ฐฉํ๊ณ ์ธํฐ๋ท์ผ๋ก ๋ค์ด๊ฐ๋ค.
4๏ธโฃ ํจํท์ ์ธํฐ๋ท์ ์
๊ตฌ์ ์๋ ์ก์ธ์ค ํ์ (ํต์ ํ์ )์ ์ํด POP(Point Of Presence, ํต์ ์ฌ์ฉ ๋ผ์ฐํฐ)๊น์ง ์ด๋ฐ๋๋ค.
์ด ํ POP๋ฅผ ๊ฑฐ์ณ ์ธํฐ๋ท์ ํต์ฌ๋ถ๋ก ๋ค์ด๊ฐ๊ฒ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ๋ง์ ๊ณ ์ ๋ผ์ฐํฐ๋ค ์ฌ์ด๋ก ํจํท์ด ๋ชฉ์ ์ง๋ฅผ ํฅํด ํ๋ฌ๊ฐ๊ฒ ๋๋ค.
5๏ธโฃ ํจํท์ ์ธํฐ๋ท ํต์ฌ๋ถ๋ฅผ ํต๊ณผํ์ฌ ์น ์๋ฒ ์ธก์ LAN์ ๋์ฐฉํ๋ค.
์น ์๋ฒ์ ๋ฐฉํ๋ฒฝ์ด ๋์ฐฉํ ํจํท์ ๊ฒ์ฌํ๊ณ ํจํท์ด ์น ์๋ฒ๊น์ง ๊ฐ์ผํ๋์ง ๊ฐ์ง ์์๋ ๋๋์ง ์บ์ ์๋ฒ๊ฐ ํ๋จํ์ฌ ๊ตณ์ด ์๋ฒ๊น์ง ๊ฐ์ง ์์๋ ๋๋ ๊ฒฝ์ฐ๋ฅผ ๊ณจ๋ผ๋ธ๋ค.
ํ์ด์ง์ ๋ฐ์ดํฐ ์ค์ ๋ค์ ์ด์ฉํ ์ ์๋ ๊ฒ์ด ์์ผ๋ฉด ์บ์ ์๋ฒ์ ์ ์ฅ๋๋ค.
6๏ธโฃ ํจํท์ด ๋ฌผ๋ฆฌ์ ์ธ ์น ์๋ฒ์ ๋์ฐฉํ๋ฉด ์น ์๋ฒ์ ํ๋กํ ์ฝ ์คํ์ ํจํท์ ์ถ์ถํ์ฌ ๋ฉ์์ง๋ฅผ ๋ณต์ํ๊ณ ์น ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๊ธด๋ค.
๋ฉ์์ง๋ฅผ ๋ฐ์ ์น ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฒญ ๋ฉ์์ง์ ๋ฐ๋ฅธ ๋ฐ์ดํฐ๋ฅผ ์๋ต ๋ฉ์์ง์ ๋ฃ์ด ํด๋ผ์ด์ธํธ๋ก ํ์ ํ๋ค.
7๏ธโฃ ์๋ ๋ฐฉ์๋๋ก ์๋ต ๋ฉ์์ง๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌ๋๋ค.
๐งฃ HTTPS
Hypertext Transfer Protocol Over Secure Socket Layer.
HTTP๋ ํ๋ฌธ(์ํธํ๋์ง ์์ ์ ๋ณด)์ผ๋ก ํต์ ์ ํ๊ธฐ ๋๋ฌธ์ ๋ณด์์ด ์ทจ์ฝํ ํ๋กํ ์ฝ์ด๋ค.
์ด ๋ฌธ์ ๋๋ฌธ์ ๋ํ๋ ๊ฒ์ด HTTPS๋ค.
๊ธฐ๋ณธ ํฌํธ๋ 443์ด๋ค.
HTTP๋ ์๋ TCP ์ ์ง์ ํต์ ํ์ง๋ง, HTTPS์์ HTTP ๋ SSL๊ณผ ํต์ ํ๊ณ SSL์ด TCP ์ ํต์ ํ๋ค.
SSL์ ์ฌ์ฉํ HTTPS๋ ์ํธํ์ ์ฆ๋ช
์, ์์ ์ฑ ๋ณดํธ๋ฅผ ์ด์ฉํ ์ ์๊ฒ ๋๋ค.
๋์นญํค์ ๊ณต๊ฐํค ์ํธํ ๋ฐฉ์์ ํผํฉํ์ฌ ๋ณด์ ํต์ ์ ๊ตฌํํ๋ค.
๋์นญํค๋ฅผ ๊ณต๊ฐํค ์ํธํ๋ฐฉ์์ผ๋ก ๊ตํํ ๋ค์์ ๊ทธ ํ ํต์ ์ ๋์นญํค๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ค.
๊ณต๊ฐํค ์ํธ์์๋ ์๋ก ๋ค๋ฅธ ๋ ๊ฐ์ ํค ํ์ด(๋น๋ฐํค, ๊ณต๊ฐํค)๋ฅผ ์ฌ์ฉํ๋ค. ๋น๋ฐํค๋ ์๋ ค์ง๋ฉด ์๋๋ ํค์ด๋ฉฐ, ๊ณต๊ฐํค๋ ๋๊ตฌ์๊ฒ๋ ์๋ ค์ ธ๋ ๊ด์ฐฎ์ ํค๋ค.
๊ณผ์
- ํด๋ผ์ด์ธํธ๊ฐ ์๋์ ๊ณต๊ฐํค๋ฅผ ์ฌ์ฉํด ์ํธํ๋ฅผ ํ๋ค.
- ์๋ฒ๋ ์์ ์ ๋น๋ฐํค๋ฅผ ์ฌ์ฉํด ๋ณตํธํ๋ฅผ ์๋ํ๋ค. ์ด ๋ฐฉ์์ ์ํธ๋ฅผ ํธ๋ ๋น๋ฐํค๋ฅผ ํต์ ์ผ๋ก ๋ณด๋ผ ํ์๊ฐ ์์ผ๋ฉฐ ๋์ฒญ์ ์ํด์ ํค๋ฅผ ๋นผ์๊ธธ ๊ฑฑ์ ์ด ์๋ค.
ํ์ง๋ง ๊ณต๊ฐํค๊ฐ ์ง์ง์ธ์ง ์๋์ง๋ฅผ ์๋ฒ์์ ์ฆ๋ช
ํ ์๊ฐ ์๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ธ์ฆ๊ธฐ๊ด(CA : Certificate Authority)๊ณผ ๊ทธ ๊ธฐ๊ด์ด ๋ฐํํ๋ ๊ณต๊ฐํค ์ฆ๋ช
์๊ฐ ์ด์ฉ๋๊ณ ์๋ค.
์ธ์ฆ ๊ธฐ๊ด์ด๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๋ชจ๋ ์ ๋ขฐํ๋ ์ 3์ ๊ธฐ๊ด์ด๋ค.
๊ณต๊ฐํค๋ฅผ ์ธ์ฆ ๊ธฐ๊ด์ ์ ์ถํ๋ฉด ์ธ์ฆ ๊ธฐ๊ด์ ์ ์ถ๋ ๊ณต๊ฐํค์ ๋์งํธ ์๋ช
์ ํ๊ณ ์๋ช
์ด ๋๋ ๊ณต๊ฐํค๋ฅผ ๋ง๋ ๋ค. ๊ทธ ํ ๊ณต๊ฐํค ์ธ์ฆ์์ ์๋ช
์ด ๋๋ ๊ณต๊ฐํค๋ฅผ ๋ด๋๋ค.
์์ ์ HTTPS ์ธ์ฆ์์๋ํ ๋น์ฉ์ด ๋ฐ์ํ์ผ๋,
Google, Mozilla ๋ฑ์ ์ฌ๋จ ๋ฐ ํ์ฌ๊ฐ 'Let's Encrypt'๋ผ๋ ์ด๋ฆ์ ๋ฌด๋ฃ๋ก HTTPS ์ธ์ฆ์๋ฅผ ๋ณด๊ธํด์ฃผ๋ ๊ธฐ๊ด์ ๋ง๋ค์๋ค.
์ด ๊ธฐ๊ด์ ํตํด ์์ฝ๊ฒ HTTPS ์ธ์ฆ์๋ฅผ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์๋ค.
์ฐธ์กฐ๋ฌธ์