์ด๋ฒ ํฌ์คํ ์ cs ๋คํธ์ํฌ์ ๋ํด ๊ณต๋ถํด๋ณด๋ ค๊ณ ํ๋ค.
์น๊ฐ๋ฐ์ ๊ธฐ๋ณธ์ธ ๋คํธ์ํฌ๋ฅผ ๋ชจ๋ฅธ๋ค๋๊ฑด ๋๋ฌด๋๋ ํฐ ๊ตฌ๋ฉ์ด๋ค.
์ธํฐ๋ท์์ ๋ฐ์ดํฐ๊ฐ ํ๋ฅด๋ ๋ฐฉ์
์ฐ๋ฆฌ๊ฐ ์น์ฌ์ดํธ์ ์ ์ํ๊ฑฐ๋ API๋ฅผ ํธ์ถํ ๋, ์ค์ ๋ก๋ ์ฌ๋ฌ ๊ณ์ธต์ ๊ฑฐ์ณ ๋ฐ์ดํฐ๋ฅผ ํฌ์ฅํ๊ณ ์ ๋ฌํจ.
์ด ๊ตฌ์กฐ๋ฅผ TCP/IP 4๊ณ์ธต ๋ชจ๋ธ์ด๋ผ๊ณ ํ๋ค.
(โป OSI 7๊ณ์ธต๋ณด๋ค ํ์ค์ ์ผ๋ก ์ฐ์ด๋ ๊ตฌ์กฐ)
๋ฒํธ | ๊ณ์ธต | ๋ํ ํ๋กํ ์ฝ/๊ธฐ์ | ํต์ฌ ์ญํ |
---|---|---|---|
1 | ๋งํฌ(๋คํธ์ํฌ ์ธํฐํ์ด์ค) | Ethernet, Wi-Fi, MAC ์ฃผ์, ARP | ๋์ผ ๋คํธ์ํฌ ๋ด ํ๋ ์ ์ ์ก |
2 | ์ธํฐ๋ท | IP(v4/v6), ICMP | ๋ชฉ์ ์ง๊น์ง ํจํท ๋ผ์ฐํ |
3 | ์ ์ก | TCP, UDP | ์ข ๋จ ๊ฐ ์ ์ก, ์ธ๊ทธ๋จผํธํ, ํ๋ฆ/ํผ์ก/์์(TCP) |
4 | ์์ฉ | HTTP/1.1, HTTP/2, HTTP/3, DNS, FTP | ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ ๋ฐ์ดํฐ ๊ตํ |
๐ก ์) ์ฐ๋ฆฌ๊ฐ ๋ธ๋ผ์ฐ์ ์์ ์ฃผ์๋ฅผ ์ ๋ ฅ โ HTTP ์์ฒญ ์์ฑ
๐ก ์) HTTP ์์ฒญ์ TCP๊ฐ ์์ ์กฐ๊ฐ(Packet) ์ผ๋ก ๋๋
๐ก ์) ์ด ํจํท์ ์ด๋ ์ปดํจํฐ๋ก ๋ณด๋ผ์ง ๊ฒฐ์
๐ก ์) ํจํท์ ๋ฌผ๋ฆฌ์ ์ผ๋ก LAN ์ผ์ด๋ธ์ ํตํด ์ ์ก
์๋ฐฉํฅ (request)*
๋ธ๋ผ์ฐ์ โ HTTP ์์ฒญ ์์ฑ โ TCP๊ฐ ๋ถํ ํ๊ณ ํฌ์ฅ โ IP๊ฐ ๋ชฉ์ ์ง ์ฃผ์ ๋ถ์ โ Ethernet์ด ์ค์ ์ ์ก
์ญ๋ฐฉํฅ (response)
Ethernet โ IP ํ์ธ โ TCP ์กฐ๋ฆฝ โ HTTP ์๋ต ์ฒ๋ฆฌ โ ๋ธ๋ผ์ฐ์ ์ ํ์
ํต์ ์ข ๋ฅ | ์๋ฐฉํฅ | ์ญ๋ฐฉํฅ |
---|---|---|
HTTP ํต์ | ์์ฒญ (Request) | ์๋ต (Response) |
SSE (Server-Sent Events) | ์์ฒญ ์์ | ์๋ฒ๊ฐ ๋ฐ์ดํฐ ๊ณ์ ํธ์ |
WebSocket | ์ฐ๊ฒฐ ์์ฒญ | ์ดํ์๋ ์๋ฐฉํฅ |
REST API ํธ์ถ | ํด๋ผ์ด์ธํธ ํธ์ถ | ์๋ฒ ์๋ต |
Ajax ์์ฒญ | ํด๋ผ์ด์ธํธ ์ด๋ฒคํธ ๋ฐ์ | ์๋ฒ ๋ฐ์ดํฐ ๋ฐํ |
HyperText Transfer Protocol
์น์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ํ
์คํธ ๊ธฐ๋ฐ์ ํต์ ๊ท์ฝ
๐ซ ์์ฒญ (Request)
GET /posts HTTP/1.1
Host: example.com
User-Agent: Chrome/...
(๋น ์ค)
๐ฌ ์๋ต (Response)
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 123
{ "message": "hello" }
์ฝ๋ | ์๋ฏธ | ์ค๋ช |
---|---|---|
200 | OK | ์ฑ๊ณต |
301 | Moved Permanently | ์๊ตฌ ๋ฆฌ๋ค์ด๋ ํธ |
400 | Bad Request | ์๋ชป๋ ์์ฒญ |
401 | Unauthorized | ์ธ์ฆ ํ์ |
403 | Forbidden | ์ ๊ทผ ๊ฑฐ๋ถ |
404 | Not Found | ์กด์ฌํ์ง ์์ |
500 | Internal Server Error | ์๋ฒ ๋ด๋ถ ์๋ฌ |
HTTP + SSL/TLS
์ํธํ ๊ณ์ธต ์ถ๊ฐ โ HTTP ํต์ ์ ์ํธํํด์ ์์ ํ๊ฒ ๋ง๋ ๊ฒ
๊ธฐ๋ณธ HTTP๋ ๋ชจ๋ ๋ด์ฉ์ด ํ๋ฌธ(Plain text) โ ๋คํธ์ํฌ ์ค๊ฐ์ ๋ด์ฉ ํ์ทจ, ์์กฐ ๊ฐ๋ฅ
1๏ธโฃ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์ ์ ์ (์: https://example.com)
2๏ธโฃ ์๋ฒ๊ฐ SSL ์ธ์ฆ์ ์ ๋ฌ
3๏ธโฃ ๋ธ๋ผ์ฐ์ ๋ ์ธ์ฆ์์ ๊ณต๊ฐํค(Public Key) ๋ก ๋ฐ์ดํฐ๋ฅผ ์ํธํ
4๏ธโฃ ์๋ฒ๋ ์์ ์ ๋น๊ณต๊ฐํค(Private Key) ๋ก ๋ณตํธํ
5๏ธโฃ ์ดํ ์์ ํ ์ฐ๊ฒฐ ์์์ HTTP ์์ฒญ/์๋ต ์ํ
Domain Name System (DNS)
= ์ฌ๋์ด ์ฝ์ ์ ์๋ ๋๋ฉ์ธ ์ฃผ์ (google.com)๋ฅผ
= ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ IP ์ฃผ์๋ก ๋ฐ๊ฟ์ฃผ๋ ์์คํ
๐ ์ปดํจํฐ๋ IP ์ฃผ์๋ก ํต์ (์: 142.250.206.46)
์ธ๊ฐ์ ๋๋ฉ์ธ์ ์ธ์ฐ๊ธฐ ์ฝ๊ธฐ ๋๋ฌธ์ www.google.com ์ฌ์ฉ
โ ๊ทธ๋์ ๋๋ฉ์ธ์ IP๋ก ๋ฐ๊ฟ์ฃผ๋ DNS ๋ณํ์ด ํ์
1๏ธโฃ ๋ธ๋ผ์ฐ์ ๊ฐ naver.com ์ ์ ์์ฒญ
2๏ธโฃ ์ด์์ฒด์ ๋ DNS ์บ์ ํ์ธ
3๏ธโฃ ์์ผ๋ฉด ์ง์ ๋ DNS ์๋ฒ (ex. 8.8.8.8) ์ ์ง์
4๏ธโฃ DNS ์๋ฒ๊ฐ naver.com โ 125.209.222.141 ๊ฐ์ IP ์ฃผ์ ๋ฐํ
5๏ธโฃ ์ด IP๋ก TCP ์ฐ๊ฒฐ ์์
์ฌ๋ฌ ์๋ฒ๋ก ์์ฒญ์ ๋ถ์ฐ์์ผ์ ์ฑ๋ฅ๊ณผ ์์ ์ฑ์ ํ๋ณดํ๋ ๊ธฐ์
๋ฐฉ์ | ์ค๋ช | ํน์ง |
---|---|---|
๋ผ์ด๋๋ก๋น | ์๋ฒ๋ฅผ ์์๋๋ก ๊ณจ๊ณ ๋ฃจ ๋ถ๋ฐฐ | ๋จ์ํ๊ณ ๊ท ํ์กํ |
Least Connections | ํ์ฌ ์ฐ๊ฒฐ ์๊ฐ ๊ฐ์ฅ ์ ์ ์๋ฒ์ ๋ถ๋ฐฐ | ๋ถํ ์ ์ ์๋ฒ ์ฐ์ |
IP ํด์ฑ | ํด๋ผ์ด์ธํธ IP์ ๋ฐ๋ผ ๊ณ ์ ๋ ์๋ฒ๋ก ์ฐ๊ฒฐ | ์ธ์ ์ ์ง ์ ๋ฆฌ |
ํฌ์ค์ฒดํฌ | ์๋ฒ ์ํ๋ฅผ ๊ฐ์ํ๊ณ , ์ฃฝ์ ์๋ฒ๋ ์ ์ธ | ๊ฐ์ฉ์ฑ ๋ณด์ฅ |
๋ธ๋ผ์ฐ์ ์ฃผ์์ฐฝ ์
๋ ฅ โ DNS โ IP ์ฃผ์ ํ๋
โ IP๊ฐ ๊ฐ๋ฆฌํค๋ ๋ก๋๋ฐธ๋ฐ์์ ์ฐ๊ฒฐ
โ ๋ก๋๋ฐธ๋ฐ์๊ฐ ์ํ ํ์ธ ํ ์ ์ ํ ์๋ฒ์ ์์ฒญ ์ ๋ฌ
โ ์๋ฒ๊ฐ ์๋ต โ ๋ธ๋ผ์ฐ์ ์ ํ์
์ฉ์ด | ์ค๋ช |
---|---|
TCP | (์ ์ก ๊ณ์ธต) ์ฐ๊ฒฐ ๊ธฐ๋ฐ, ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ ์ ์ก |
UDP | (์ ์ก ๊ณ์ธต) ์ฐ๊ฒฐ ์์, ๋น ๋ฅธ ์ ์ก, ์์ ๋ณด์ฅ ์์ |
IP | (์ธํฐ๋ท ๊ณ์ธต) ๋ชฉ์ ์ง ์ฃผ์ ์ง์ ๋ฐ ๋ผ์ฐํ |
MAC ์ฃผ์ | (๋คํธ์ํฌ ๊ณ์ธต) ๋ฌผ๋ฆฌ ์ฅ์น์ ๊ณ ์ ์ฃผ์ (๋ก์ปฌ ๋คํธ์ํฌ ์๋ณ) |
Ethernet | (๋คํธ์ํฌ ๊ณ์ธต) ์ค์ ๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ ์ ์ก ๋ฐฉ์ |
HTTP | ์น์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ท์ฝ (ํ ์คํธ ๊ธฐ๋ฐ) |
HTTPS | HTTP์ ์ํธํ๋ฅผ ์ถ๊ฐํ ์์ ํ ํต์ ๋ฐฉ์ |
SSL/TLS | HTTPS ์ํธํ ํ๋กํ ์ฝ |
์ธ์ฆ์ | ์๋ฒ๊ฐ ์ง์ง์์ ์ฆ๋ช ํ๋ ๊ณต๊ฐํค ๊ธฐ๋ฐ ๋ฌธ์ |
๊ณต๊ฐํค/๊ฐ์ธํค | ๋น๋์นญ ์ํธํ์์ ์ฌ์ฉํ๋ ํค ์ |
์ํ์ฝ๋ | ์์ฒญ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ซ์๋ก ๋ํ๋ธ ์๋ต ์ ๋ณด |
DNS | ๋๋ฉ์ธ โ IP ์ฃผ์๋ก ๋ฐ๊พธ๋ ์์คํ |
DNS ์บ์ | ์ต๊ทผ ์ฌ์ฉํ ๋๋ฉ์ธ-IP ์ ๋ณด๋ฅผ ์์ ์ ์ฅ |
๋ก๋๋ฐธ๋ฐ์ | ์ฌ๋ฌ ์๋ฒ๋ก ํธ๋ํฝ์ ๋๋ ์ฃผ๋ ์ฅ์น |
๋ผ์ด๋๋ก๋น | ์๋ฒ๋ฅผ ์์๋๋ก ๋ฒ๊ฐ์ ๊ฐ๋ฉฐ ์์ฒญ ๋ถ์ฐ |
ํฌ์ค์ฒดํฌ | ์๋ฒ์ ์ํ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ํ์ธํ๋ ๊ธฐ๋ฅ |
์ด๋ฏธ์ง ๋ฃ์ด์ฃผ์ธ์