www.inflearn.com/course/http-์น-๋คํธ์ํฌ#
๊น์ํ๋์ HTTP ์น ๊ธฐ๋ณธ ์ง์ ๊ฐ์๋ฅผ ๋ณด๊ณ ํ๊ธฐํ์ต๋๋ค! ๊ฐ์๋ฅผ ๋ณด๋ฉด ์ดํด๊ฐ ๋ ์ฌ์ฐ๋ ์ถ์ฒ ํฉ๋๋ค. ๐
์ค๋ฌด์์ ํ์ํ HTTP ๊ธฐ๋ฅ๊ณผ ์ฌ๋ฐ๋ฅธ HTTP API ์ค๊ณ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค!
๊ณต๋ถ ๊ณ๊ธฐ
์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ HTTP ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํ๋ ์น ํ๋ ์์ํฌ๋ ๊ธฐ์ ๋ค์ ์ฌ์ฉํ๋๋ฐ ๋จ์ํ ๊ธฐ๋ฅ ์ฌ์ฉ๋ฒ ์์ฃผ๋ก ์ฌ์ฉํ์ง ์๊ณ ์๋ฆฌ๋ฅผ ์ดํดํ๊ธฐ ์ํด์ ์์ํ์ต๋๋ค.
๋ชฉํ
HTTP์ ์ ์ฒด ํ๋ฆ์ ์ดํดํ๋ค.
01. ์ธํฐ๋ท ํต์
IP ๋ ๋ฌด์์ผ๊น?
์ธํฐ๋ท ํ๊ฒฝ์์์ ํต์ ๊ท์ฝ์ ๋๋ค. ํธ์คํธ๊ฐ์ ํต์ ๋ง์ ๋ด๋นํ๋ค๋ ์ ์ด ํน์ง์ ๋๋ค.
์ง์ ํ IP์ฃผ์์ ํจํท(Packet)์ด๋ผ๋ ํต์ ๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ ํฉ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ํจํท์ด๋ ๋ญ๊น?
๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ ์ก์ ์ธก๊ณผ ์์ ์ธก์์ ํ๋์ ๋จ์๊ฐ ๋์ด ์ ์ก๋๋ ์งํฉ์ฒด๋ฅผ ๋ปํ๋๋ฐ
ํจํท์์ ์ถ๋ฐ์งIP, ๋ชฉ์ ์ง IP, ๊ธฐํ ... ์ด ํฌํจ๋์ด์๋ค.
์ด๋ป๊ฒ ์ ์กํ ๊น?
IP ํจํท์ ๋ง๋ ๋ค -> ํจํท ์์ ์๋ ์ถ๋ฐ์ง, ๋ชฉ์ ์ง IP ๋ฑ์ ์ธํฐ๋ท์ผ๋ก ์ ๋ฌํ๋ค. -> ๋ ธ๋ ๋ผ๋ฆฌ ์ฃผ์๋ฅผ ํ์ธํ์ฌ ๋ชฉ์ ์ง๊น์ง ์ ํํ๊ฒ ๋๋ฌํ๋ค. -> ๋ชฉ์ ์ง์์ ๋ฉ์์ง๋ฅผ ๋ฐ์์ ๊ฒฝ์ฐ ๋ฐ์๋ค๋ OK ๋ฉ์์ง๋ฅผ ์ด๋ฏธ ์จ ๋ ธ๋๋ฅผ ๊ธฐ์ตํ์ฌ ๋น ๋ฅด๊ฒ ๋ตํ๋ค.
์ฌ๊ธฐ์ ๋ฌธ์ ์ ์ด ์๋ค.
1. ํด๋ผ์ด์ธํธ์์ ์๋ฒ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ค. ํ์ง๋ง ํด๋น ์๋ฒ๊ฐ ์๊ฑฐ๋ ์๋น์ค ๋ถ๋ฅ ์ํ์ฌ๋ ์ ์ก์ด ๋๋ค. -> ๋น์ฐ๊ฒฐ์ฑ
2. ํด๋ผ์ด์ธํธ์์ ์๋ฒ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ค. ํ์ง๋ง ์ค๊ฐ์ ํจํท์ด ์ฌ๋ผ์ง๊ฑฐ๋ ํจํท์ด ์์๋๋ก ๋์ฐฉํ์ง ์์๋ค (์์ค๋์ด๋ ์ ์ ์๋ค.) -> ๋น์ ๋ขฐ์ฑ
์ด ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ์๊ธฐ ์ ์ ์ธํฐ๋ท ํ๋กํ ์ฝ ์คํ์ 4๊ณ์ธต์ ์ดํด๋ณด์
์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต - HTTP, FTP
์ ์ก ๊ณ์ธต - TCP, UDP
์ธํฐ๋ท ๊ณ์ธต - IP
๋คํธ์ํฌ ์ธํฐํ์ด์ค ๊ณ์ธต - LAN ๋๋ผ์ด๋ฒ, ์ฅ๋น
1. ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฉ์์ง๋ฅผ ์์ฑํ๋ค. (ex. ์ฑํ ์ ๋ฉ์์ง ์์ฑ -> Socket๋ผ์ด๋ธ๋ฌ๋ฆฌ ํตํด ์ ๋ฌ)
2. TCP ์ ๋ณด ์์ฑ, ๋ฉ์์ง ๋ฐ์ดํฐ ํฌํจํ๋ค.
3. IP ํจํท ์์ฑ, TCP ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ค.
์ฆ ๋ฐ์ดํฐ๊ฐ ์ ์ก๋ ๋ IP ํจํท ์์ TCP ๋ฐ์ดํฐ, ๊ทธ์์ ๋ฉ์์ง ๋ฐ์ดํฐ๋ฅผ ํฌํจํ์ฌ ์ ์ก๋๋ค.
์์ ๊ฐ์ ๊ทธ๋ฆผ์ผ๋ก ๊ตฌ์ฑ๋ ํจํท์ TCP/IP ํจํท์ด๋ผ๊ณ ํ๋ค.
๊ทธ๋ ๋ค๋ฉด TCP๋ ๋ฌด์์ผ๊น?
์ ์ก ์ ์ด ํ๋กํ ์ฝ(Transmission Control Protocol) ํน์ง
- ์ฐ๊ฒฐ์งํฅ - TCP 3 way handshake ( ๊ฐ์ ์ฐ๊ฒฐ )
๋ ผ๋ฆฌ์ ์ผ๋ก๋ง ์ฐ๊ฒฐ๋์ด ์๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
์์ชฝ์์ SYN, ACK๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํ์ธ์ ํ๋ค.
-> ์ต๊ทผ์๋ ๋ง์ง๋ง์ผ๋ก ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ํ์ธํ๋ ACK๋ฅผ ๋ณด๋ผ๋ ์์ฒญ๋ ๊ฐ์ด ๋ณด๋ธ๋ค.
1. ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์ฐ๊ฒฐ์์ฒญ (SYN) ํ๋ค.
2. ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ์์ฒญ์ ๋ณด (SYN), ์์ฒญ ์๋ฝ(ACK) ๋ฅผ ๋ณด๋ธ๋ค.
3. ํด๋ผ์ด์ธํธ๊ฐ ๋ง์ง๋ง์ผ๋ก ์๋ฒ์ ํ์ธํ๋ ์์ฒญ ์๋ฝ(ACK)๋ฅผ ๋ณด๋ธ๋ค. -> ์ด๋ ๋ฐ์ดํฐ ์ ์ก์ ๋ณด๋ด๊ธฐ๋ ํ๋ค.
4. ๋ฐ์ดํฐ ์ ์ก ํ๋ค.
- ๋ฐ์ดํฐ ์ ๋ฌ ๋ณด์ฆ
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ฉด ์๋ฒ์์ ์ ๋ฐ์๋์ง ์๋ตํด์ค๋ค.
- ์์ ๋ณด์ฅ
ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋๋๋ฐ ์๋ฒ์์ ๋์ฐฉํ ๋ฐ์ดํฐ์ ์์๊ฐ ๋ค๋ฅผ์ ์ ๋ถ ๋ฒ๋ฆฌ๊ณ ๋ค์ ์์ฒญํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋๋ค.
-> TCP ์์ ์ ๋ณด๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ๋ค. ( ์์์ ๋ณด, ๊ฒ์ฆ ์ ๋ณด ๋ฑ๋ฑ,, )-> ์ ๋ขฐํ ์ ์๋ ํ๋กํ ์ฝ
- ํ์ฌ๋ ๋๋ถ๋ถ TCP ๋ฅผ ์ฌ์ฉํ๋ค.
TCP์ ๊ฐ์ ์ ์ก๊ณ์ธต์ ์๋ UDP๋ ๋ฌด์์ผ๊น? (User Datafram Protocol)
IP์ ๊ฐ์๋ฐ PORT, ์ฒดํฌ์ฌ ์ ๋ณด๊ฐ ์ถ๊ฐ๋์๋ค.
์ ์ฌ์ฉํ์ง?
- UDP PORT๋ฅผ ์ฌ์ฉํ์ฌ ํ๋์ IP ์์ ์ฌ๋ฌ๊ฐ์ ์ดํ๋ฆฌ์ผ์ด์ ์ ํจํท์ ์์ ํ๊ฒ ๋ฐ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
- 3 way handshake ๊ฐ ์์ด ๋น ๋ฅด๋ค.
- TCP๊ฐ ์ ๋ณด๋ฅผ ๋ง์ด ๊ฐ๊ณ ์๊ณ ์ฐ๊ฒฐํ์ธ(3 way handshake)์ ํ๊ธฐ ๋๋ฌธ์ ๋๋ฆฐ ๋ถ๋ถ์ ๋ณด์ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. (์ต์ ํ)
๊ทธ๋ ๋ค๋ฉด PORT๋ ๋ฌด์์ผ๊น?
IP ๋ง์ผ๋ก๋ ์ด๋์ ํ์ํ ํจํท์ธ ์์๊ฐ ์๊ธฐ ๋๋ฌธ์ PORT๋ฅผ ์ฌ์ฉํ๋ค.
์๋ฒ์์์ ๋์๊ฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ๋ถํ ๋ ์ฌ์ฉํ๋ค.
๊ท์น
- 0 ~ 1023 : ์ ์๋ ค์ง ํฌํธ, ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์TELNET - 23HTTPS - 443
- HTTP - 80
- FTP - 20,21
- 0 ~ 65535 : ํ ๋น ๊ฐ๋ฅ
๊ทธ๋ ๋ค๋ฉด IP ์ฃผ์๋ฅผ ์ธ์ฐ์ ์ฌ์ฉํด์ผ ํ๋?
๋๋ฉ์ธ ๋ค์ ์์คํ DNS(Domain Name System)
IP๋ ๊ธธ๊ณ ์ด๋ ค์ด๋ฐ๋ค๊ฐ ๋ณ๊ฒฝ๋ ์ ์๊ธฐ ๋๋ฌธ์ DNS๋ฅผ ์ฌ์ฉํ๋ค. ๋๋ฉ์ธ๋ช ์ IP ์ฃผ์๋ก ๋ณํํ๋ค.
IP ๋ก ๋๋ฉ์ธ์ ํ์ธํ๊ณ ์ถ๋ค๋ฉด?
> nslookup 8.8.8.8
'๐ป Computer Science' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
06. HTTP ์น ๊ธฐ๋ณธ ์ง์ - HTTP ์ํ์ฝ๋ ์๊ฐ (0) | 2021.05.04 |
---|---|
05. HTTP ์น ๊ธฐ๋ณธ ์ง์ - ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ๋ฐ์ดํฐ ์ ์ก (0) | 2021.05.04 |
04. HTTP ์น ๊ธฐ๋ณธ ์ง์ - HTTP API (0) | 2021.05.03 |
03. HTTP ์น ๊ธฐ๋ณธ ์ง์ - ๋ชจ๋ ๊ฒ์ด HTTP (0) | 2021.05.03 |
02. HTTP ์น ๊ธฐ๋ณธ ์ง์ - URI (0) | 2021.05.03 |