Web/HTTP

HTTP์˜ ๊ธฐ์ดˆ, ์ธํ„ฐ๋„ท ๋„คํŠธ์›Œํฌ

๐Ÿ“’ Intro

๋‘๊ฐœ์˜ ์ปดํ“จํ„ฐ๋Š” ์„œ๋กœ ์–ด๋–ป๊ฒŒ ํ†ต์‹ ํ•˜๋А๋ƒ? 

 

๋ฐ”๋กœ๋ฐ”๋กœ

 

์ธํ„ฐ๋„ท! ๋งค์šฐ๋งค์šฐ ๋ณต์žกํ•œ ์ธํ„ฐ๋„ท ๋ง์„ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ํ†ต์‹ ํ•œ๋‹ค.

(๋ฌผ๋ก  ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ผ€์ด๋ธ”๊ฐ€์ ธ๊ฐ€๋‹ค ์—ฐ๊ฒฐํ•˜๋ฉด ๊ทธ๊ฒƒ๋„ ํ†ต์‹ ์€ ํ†ต์‹ ์ด์ง€๋งŒ ์ด์„ธ์ƒ์— ์ปดํ“จํ„ฐ๊ฐ€ ๋‘์„ธ๊ฐœ๊ฐ€ ์žˆ๋Š”๊ฒŒ ์•„๋‹ˆ์ž–์•„)

 

๐Ÿ“’IP (Internet Protocol)

๊ทธ๋ ‡๊ฒŒ ๋ณต์žกํ•œ ์ธํ„ฐ๋„ท ๋ง์ธ๋ฐ ์•„๋ฌด๋‚˜ ์•„๋ฌด๋ ‡๊ฒŒ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์„๊นŒ? ์—†์ง€. ๋‹ค์ˆ˜์˜ ์ง‘ํ•ฉ์ฒด(?)๊ฐ€ ์žˆ๋Š” ๊ณณ์ด๋ผ๋ฉด ์–ด๋””๋“  ๊ทธ๋žฌ๋“ฏ์ด "๊ทœ์น™"์ด๋ผ๋Š”๊ฒŒ ํ•„์š”ํ•˜๋‹ค. 

๊ทธ ์ค‘์—์„œ๋„ ์ธํ„ฐ๋„ท ํ†ต์‹ ์— ํ•„์š”ํ•œ ๊ทœ์น™์ด ๋ฐ”๋กœ ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ. IP๋‹ค.

๋Œ€๋žต 127.0.0.1๊ฐ™์ด ์ˆซ์ž๋ž‘ ์ฉœ์œผ๋กœ ๊ตฌ์„ฑ๋œ.(?)

 

์ด ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ์€ ํŒจํ‚ท(Packet)์ด๋ผ๋Š” ํ†ต์‹  ๋‹จ์œ„๋กœ, ์ง€์ •ํ•œ IP์ฃผ์†Œ(IP Address)์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.

 

๊ทธ๋Ÿผ ๊ทธ ํŒจํ‚ท์ด๋ผ๋Š”๊ฑด ์–ด๋–ป๊ฒŒ ์ƒ๊ฒจ๋จน์€๊ฑฐ์ง€?

๐Ÿ“ŒํŒจํ‚ท(Packet)

์ถœ๋ฐœ์ง€ IP / ๋ชฉ์ ์ง€ IP / ์ „์†ก ๋ฐ์ดํ„ฐ / ๊ธฐํƒ€

๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค. ๋งŽ์€ ๋‹ค์–‘ํ•œ ๊ธฐํƒ€ ์ •๋ณด ์ƒ๋žต.

 

ํด๋ผ์ด์–ธํŠธ์—์„œ -> ์„œ๋ฒ„๋กœ

์ถœ๋ฐœ์ง€ IP: 100.200.300.4 / ๋ชฉ์ ์ง€ IP: 400.300.200.1 / HELLO WORLD~~ / ...

๋ผ๋Š” ํŒจํ‚ท์„ ๋ณด๋‚ด๋ฉด ์ธํ„ฐ๋„ท ๋ง์˜ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋…ธ๋“œ๋“ค์„ ๊ฑฐ์น˜๊ณ  ๊ฑฐ์น˜๊ณ  ๊ฑฐ์ณ์„œ ์„œ๋ฒ„์— ๋„์ฐฉํ•œ๋‹ค.

 

๊ทธ๋Ÿผ ์ด ํŒจํ‚ท์„ ๋ฐ›์€ ์„œ๋ฒ„๋Š” ์„œ๋ฒ„์—์„œ -> ํด๋ผ์ด์–ธํŠธ๋กœ

์ถœ๋ฐœ์ง€ IP: 400.300.200.1 / ๋ชฉ์ ์ง€ IP: 100.200.300.4 / ํ—ฌ๋กœ ์›”๋“œ~~ / ...

๋ผ๊ณ  ๋ณด๋‚ธ๋‹ค.

 

๐Ÿ“ŒIP ํ”„๋กœํ† ์ฝœ์˜ ํ•œ๊ณ„

1. ๋น„์—ฐ๊ฒฐ์„ฑ

> ํŒจํ‚ท์„ ๋ฐ›์„ ๋Œ€์ƒ์ด ์—†๊ฑฐ๋‚˜, ๋Œ€์ƒ์ด ํŒจํ‚ท์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ์ธ์ง€ ๋ชจ๋ฅด๊ฑฐ๋‚˜, ์„œ๋น„์Šค ๋ถˆ๋Šฅ ์ƒํƒœ์—ฌ๋„ ์šฐ์ฒด๊ตญ์—์„œ ์šฐํŽธ ๋ถ€์น˜๋“ฏ์ด ์ผ๋‹จ ๋ฌด์กฐ๊ฑด ํŒจํ‚ท์„ ์ „์†กํ•œ๋‹ค. ์ž˜ ๋„์ฐฉํ–ˆ๋Š”์ง€ ์–ด์จŒ๋Š”์ง€ ์•Œ ๊ธธ์ด ์—†๋‹ค.

 

2. ๋น„์‹ ๋ขฐ์„ฑ

> ์•„๋ฌด ๋ฌธ์ œ์—†์ด ์ˆœ์กฐ๋กญ๊ฒŒ ํŒจํ‚ท์ด ์ „๋‹ฌ๋˜๋ฉด ๋ฌธ์ œ์—†์ง€๋งŒ ์ธํ„ฐ๋„ท์„ ํ˜ธ๋ฝํ˜ธ๋ฝํ•˜์ง€์•Š์ง€(?)

์ค‘๊ฐ„์— ํŒจํ‚ท์ด ์‚ฌ๋ผ์ง€๊ฑฐ๋‚˜, ํŒจํ‚ท์ด ๋‘๊ฐœ ์ด์ƒ์ด๋ผ๋ฉด(๋ณดํ†ต 1500byte์ด์ƒ์˜ ๋ฌธ์ž์—ด์ด๋ฉด ๋‚˜๋ˆ ์„œ ๋ณด๋‚ธ๋‹ค.) ์ˆœ์„œ๋Œ€๋กœ ๋„์ฐฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋„ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค.

 

3. ํ”„๋กœ๊ทธ๋žจ ๊ตฌ๋ถ„

> ๊ฐ™์€ IP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋ฒ„์—์„œ ํ†ต์‹ ํ•˜๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋‘๊ฐœ ์ด์ƒ์ด๋ผ๋ฉด ๊ตฌ๋ถ„ํ•  ๋ฐฉ๋ฒ•์ด ์—†๋‹ค.

 

 

๐Ÿ“’TCP (Transmission Control Protocol: ์ „์†ก ์ œ์–ด ํ”„๋กœํ† ์ฝœ)

์ด๋Ÿฌํ•œ IP ํ”„๋กœํ† ์ฝœ์˜ ํ•œ๊ณ„๋ฅผ ๋ณด์•ˆํ•˜๊ธฐ ์œ„ํ•ด TCP๊ฐ€ ๋“ฑ์žฅํ•œ๋‹ค. ๋จผ์ €, TCP / IP ๊ณ„์ธต ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

 

๐Ÿ“Œ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ ์Šคํƒ์˜ 4๊ณ„์ธต (TCP / IP ๊ณ„์ธต)

1. [Application Layer] ์›น ๋ธŒ๋ผ์šฐ์ €, ์ฑ„ํŒ… ํ”„๋กœ๊ทธ๋žจ ๋“ฑ์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ „๋‹ฌํ•˜๋ ค๋Š” ๋ฉ”์„ธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋ฉด, SOCKET ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋œ๋‹ค.

2. [Transport Layer] TCP ์„ธ๊ทธ๋จผํŠธ(TCP ์ •๋ณด)๋ฅผ ์ƒ์„ฑํ•ด์„œ ์œ„์—์„œ ๋ฐ›์€ ๊ทธ ๋ฉ”์„ธ์ง€์— ํ•ฉ์ณ์ฃผ๊ณ ,

3. [Internet Layer] ์ถœ๋ฐœ์ง€์™€ ๋ชฉ์ ์ง€ ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ์žˆ๋Š” IP ํŒจํ‚ท์„ ์ƒ์„ฑํ•ด์„œ,

4. [Network Access Layer] ๋ฌผ๋ฆฌ์ ์ธ ์ฃผ์†Œ๊ฐ€ ํฌํ•จ๋œ Ethernet frame์ด๋ผ๋Š” ๊ฒƒ์ด ์”Œ์›Œ์ง€๊ณ , LAN์นด๋“œ ๊ฐ™์€ LAN์žฅ๋น„๋ฅผ ํ†ตํ•ด ์ธํ„ฐ๋„ท์„ ๊ฑฐ์ณ ์„œ๋ฒ„๋กœ ์ „๋‹ฌ๋œ๋‹ค.

 

* TCP ์„ธ๊ทธ๋จผํŠธ (TCP ์ •๋ณด) : ์ถœ๋ฐœ์ง€ PORT / ๋ชฉ์ ์ง€ PORT / ์ „์†ก์ œ์–ด / ์ˆœ์„œ / ๊ฒ€์ฆ ์ •๋ณด / ๊ธฐํƒ€

 

๐Ÿ“ŒTCP ํŠน์ง•

1. ์—ฐ๊ฒฐ ์ง€ํ–ฅ  - TCP 3 way handshake (๊ฐ€์ƒ ์—ฐ๊ฒฐ - ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ง์ ‘์ ์œผ๋กœ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ๊ฒŒ ์•„๋‹ˆ๋ผ ์ค‘๊ฐ„์— ์ˆ˜๋งŽ์€ ๋ญ”์ง€ ๋ชจ๋ฅผ ์„œ๋ฒ„๋“ค์„ ๊ฑฐ์ณ์„œ ์—ฐ๊ฒฐ)

 

* TCP 3 way handshake (SYN = ์ ‘์† ์š”์ฒญ / ACK = ์š”์ฒญ ์ˆ˜๋ฝ)

์”ฌ.์”ฌ์•ก.์•ก~~~

 

 

2. ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ณด์ฆ - ๋ˆ„๋ฝ๋œ ์ •๋ณด๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ทธ ์ •๋ณด๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

3. ์ „๋‹ฌ ์ˆœ์„œ ๋ณด์žฅ - ๋งŒ์•ฝ ์ˆœ์„œ๊ฐ€ ์ž˜๋ชป๋˜์–ด๋„ ์˜ฌ๋ฐ”๋ฅธ ์ˆœ์„œ๋Œ€๋กœ ๋‹ค์‹œ ๋ณด๋‚ธ๋‹ค.

 

๋”ฐ๋ผ์„œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  TCP์™€ ๊ผญ ๋”ฐ๋ผ๋‹ค๋‹ˆ๋Š” ๊ฐœ๋…์ด UDP์ธ๋ฐ,

๐Ÿ“ŒUDP (User Datagram Protocol)

ํ•˜์–€ ๋„ํ™”์ง€์— ๋น„์œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋Šฅ์ด ๊ฑฐ์˜ ์—†๊ณ  IP์™€ ๋น„์Šทํ•˜๋‹ค.

๋‹จ์ : ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ณด์ฆ ์•ˆ๋˜๊ณ  ์ˆœ์„œ ๋ณด์žฅ ์•ˆ๋œ๋‹ค.

์žฅ์ : ๊ทธ ๋Œ€์‹  ๋น ๋ฅด๋‹ค.

๋‹ค๋งŒ PORT์™€ ์ฒดํฌ์„ฌ์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋Š” ์ ์ด ํŠน์ง•์ด๋ผ๋ฉด ํŠน์ง•์ด๊ณ  ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ถ”๊ฐ€ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค.

 

 

๐Ÿ“’PORT

๊ทธ๋Ÿฐ๋ฐ ์šฐ๋ฆฌ๊ฐ€ ์ปดํ“จํ„ฐ ํ•˜๋‚˜๋กœ ํ•œ๊ฐ€์ง€ ์ž‘์—…๋งŒ ํ•˜๋Š”๊ฐ€? ๊ทธ๋Ÿด๊ฑฐ๋ฉด ์ปดํ“จํ„ฐ๊ฐ€ ํ•„์š” ์—†๋‹ค. ๋‹น์—ฐํžˆ ์ธํ„ฐ๋„ท ์„œ์น˜๋„ ํ–ˆ๋‹ค๊ฐ€ ๋ฐฐ๊ทธ๋„ ํ•œํŒ ํ–ˆ๋‹ค๊ฐ€ ์‹ค๊ฐ• ์‹œ๊ฐ„๋˜๋ฉด ์คŒ๋„ ์ผœ์•ผ ํ• ํ…๋ฐ.

 

์ด ๋ง์€ ๊ณง, ํ•˜๋‚˜์˜ IP์—์„œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ํŒจํ‚ท๋„ ์—ฌ๋Ÿฌ๊ฐœ๋‹ค.

IP๋Š” ํ•˜๋‚˜์ธ๋ฐ ํŒจํ‚ท์€ ์—ฌ๋Ÿฌ๊ฐœ์ผ ๋•Œ ์–˜๋„ค๋“ค์„ ์–ด๋–ป๊ฒŒ ๊ตฌ๋ถ„ํ•ด์ค˜์•ผ ํ• ๊นŒ??

 

์ด๋•Œ ํ•„์š”ํ•œ ๊ฒƒ์ด PORT.

 

ํ•˜๋‚˜์˜ IP์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํฌํŠธ๋ฅผ ์—ฐ๋‹ค.

์„œ์น˜ํ•˜๋Š” ํฌํŠธ๋Š” 1010, ๋ฐฐ๊ทธ ํฌํŠธ๋Š” 4444, ์คŒ ํฌํŠธ๋Š” 10110 ๋Œ€์ถฉ ์ด๋Ÿฐ์‹์ด๋‹ค.

์ฐธ๊ณ ๋กœ ์ž˜ ์•Œ๋ ค์ง„ ๋ช‡๊ฐœ์˜ ํฌํŠธ๊ฐ€ ์žˆ๋Š”๋ฐ HTTP๋Š” 80, HTTPS์˜ ํฌํŠธ๋Š” 443์ด๋‹ค.

 

์ฆ‰, IP๊ฐ€ ์•„ํŒŒํŠธ๋ผ๋ฉด PORT๋Š” ใ…ใ…๋™ OOํ˜ธ๊ฐ€ ๋œ๋‹ค. ๊ฐ™์€ ์•„ํŒŒํŠธ์— ์‚ด ์ˆ˜๋Š” ์žˆ์–ด๋„ ๊ฐ™์€ ๋™ํ˜ธ์ˆ˜์— ์‚ด์ง€๋Š” ์•Š์„๊ฑฐ์•„๋ƒ.

 

๐Ÿ“’DNS (Domain Name System)

๊ทธ๋ž˜, IP๋„ ์•Œ๊ฒ ๊ณ  TCP๋„ ์•Œ๊ฒ ์–ด ๊ทผ๋ฐ ๊ทธ IP์ฃผ์†Œ๋ผ๋Š”๊ฒŒ 100.100.101.1 ? 127.0.0.1? 

๊ธฐ์–ตํ•˜๊ธฐ ๋„ˆ๋ฌด ์–ด๋ ต๋„น? ์‹ฌ์ง€์–ด ๋ฐ”๋€” ์ˆ˜๋„ ์žˆ๋‹ค๊ตฌ?

 

๊ทธ๋ž˜์„œ DNS๊ฐ€ ๋“ฑ์žฅํ•œ๋‹ค.

 

๋„๋ฉ”์ธ ๋„ค์ž„ ์‹œ์Šคํ…œ. ๋ฆฌํ„ฐ๋Ÿด๋ฆฌ ์ด๋ฆ„์„ ๋“ฑ๋กํ•œ ์‹œ์Šคํ…œ์ด๋‹ค. ์ „ํ™”๋ฒˆํ˜ธ๋ถ€ ๊ฐ™์€๊ฑฐ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด,

๋„๋ฉ”์ธ ๋ช…์ด google.com์ด๋ผ๋Š” ๊ฒƒ์˜ IP๋Š” 200.200.200.2 ์ด๊ณ ~ ๋„๋ฉ”์ธ ๋ช…์ด naver.com์ด๋ผ๋Š” ๊ฒƒ์˜ IP๋Š” 500.500.500.5์ด๋‹ค~

 

'Web > HTTP' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

HTTP ์ƒํƒœ ์ฝ”๋“œ  (0) 2022.01.11
HTTP API ์„ค๊ณ„ ์˜ˆ์‹œ  (0) 2022.01.11
HTTP ๋ฉ”์„œ๋“œ์™€ ํ™œ์šฉ  (0) 2022.01.10
HTTP ๊ธฐ๋ณธ ๊ฐœ๋…  (0) 2022.01.10
URI์™€ ์›น ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ ํ๋ฆ„  (0) 2022.01.10