์น ํ์ด์ง๋ ๊ฐ๊ฐ ๋ค๋ฅธ ์น ์๋ฒ์ ์ ์ฅ๋ ์ ์๋ ๊ฐ์ฒด(objects)๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
ex) HTML file, JPEG image, JavaScript, audio file..
์น ํ์ด์ง๋ ๊ฐ๊ฐ uniform resource locator(URL)๋ก ์ฃผ์ ์ง์ ์ด ๊ฐ๋ฅํ referenced objects (์ฐธ์กฐ ๊ฐ์ฒด)๋ค์ ํฌํจํ ๊ธฐ๋ณธ HTML ํ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
-> host name + path name
HTTP(Hyper Text Transfer Protocol)
HTTP๋ ์น์์ ์ฌ์ฉํ๋ application layer protocol์ด๋ค.
- Hyperlink : ์ฌ์ฉ์๊ฐ ํด๋ฆญํ์ฌ ๋ฐ๋ก ์ฐพ์ ์ ์๋ ๋ฐ์ดํฐ์ ๋ํ ์ฐธ์กฐ
- client / server model :
client : HTTP protocol์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์์ฒญ,์์ ํ์ฌ web objects๋ฅผ ๋ธ๋ผ์ฐ์ ์ ๋ณด์ฌ์ค๋ค.
server : HTTP protocol์ ์ฌ์ฉํ์ฌ ์์ฒญ์ ๋ฐ๋ฅธ object๋ฅผ ์ก์ ํ๋ ์น ์๋ฒ
- HTTP๋ TCP๋ฅผ ์ฌ์ฉํ๋ค. ์น์ ์ ๋ขฐ์ฑ์ด ์ค์ํ๊ธฐ์ ์ ๋ขฐ์ฑ์ ์ ๊ณตํ์ง ์๋ UDP๋ณด๋ค TCP๋ฅผ ์ฌ์ฉํ๋ค.
์น์ด TCP๋ฅผ ์ฌ์ฉํ๋ ์์๋ ๋ค์๊ณผ ๊ฐ๋ค.
client๊ฐ TCP connection(creates socket)์ ์๋ฒ์์ port nubmer 80์ผ๋ก ์์ฒญํ๋ค.
server๊ฐ client๋ก๋ถํฐ ์์ฒญ๋ TCP connection์ ์๋ฝํ๋ค.
HTTP messages(application layer protocol message)๊ฐ client์ server ์ฌ์ด์์ ๊ตํ๋๋ค.
TCP connection์ด ๋ซํ๋ค.
- HTTP๋ "Stateless (๋น์ํ)" ์ด๋ค. server๋ client์ ์ด์ ์์ฒญ์ ์ ๋ณด, ์ํ๋ฅผ ์ ์งํ์ง ์๋๋ค. ์ด์๋ ๋ฐ๋๋ก server๊ฐ client์ ์ด์ ์ํ๋ฅผ ๋ณด์กดํ๋ staeful์ด ์๋ค. stateless๋ ์ํ๋ฅผ ๋ณด๊ดํ์ง ์๊ธฐ์ ๊ฐ๋ฒผ์ฐ๋ฉฐ client์ ์์ฒญ์ ์ด๋ค server๊ฐ ์๋ต์ ํด๋ ์๊ด์ด ์๊ธฐ์ client์ ์์ฒญ์ด ์ฆ๊ฐํ์ฌ๋ ์๋ฒ์ ์ฆ์ค์ ํตํด ํด๊ฒฐํ ์ ์๋ค.
HTTP Connection์๋ ๋ ๊ฐ์ง ๋ฐฉ์์ด ์๋ค.
RTT(round-trip-time) : ํจํท์ด client๋ก๋ถํฐ server๋ฅผ ํตํด ์๋ณตํ๋ ์๊ฐ.
Non-persistent connection์์์ HTTP response time์ TCP Connection์ ๋ง๋๋ ๊ฒ์ ํ๋์ RTT, ํ๋์ ๊ฐ์ฒด๋ฅผ ์์ฒญํ๊ณ ๋ฐ๋ ๊ฒ์ ํ๋์ RTT, server์์ client์ ํ์ผ์ ์ ์กํ๋ ์๊ฐ์ ํฌํจํ๊ฒ ๋๋ค.
Non-persistent HTTP response time : 2RTT + file transmission time
Non-persistent HTTP๋ ์ฌ๋ฌ ๊ฐ์ฒด๋ฅผ ๋ฐ๊ธฐ ์ํด์ TCP connection์ ์ด๊ณ ๋ซ๋ ํ์๋ฅผ ๋ฐ๋ณตํด์ผ ํ๋ฏ๋ก ๋นํจ์จ์ ์ด๊ณ ๋๋ฆฌ๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Persistent connection์ด ๋ฑ์ฅํ์๋ค. Persistent HTTP๋ server๊ฐ response๋ฅผ ๋ณด๋ธ ์ดํ connection์ ์ด์ด๋๊ณ , client๋ ์๋ก์ด ์ฐธ์กฐ ๊ฐ์ฒด๋ฅผ ํ์ฑํ๋ฉด ์ฆ์ server์๊ฒ ์์ฒญ์ ๋ณด๋ด๋ ๋ฐฉ์์ผ๋ก HTTP message๋ฅผ ๊ตํํ๋ค. ์ดํ ์ผ์ ์๊ฐ๋์ ๋ฐ์ดํฐ๊ฐ ์ค์ง ์์ผ๋ฉด connection์ ๋ซ๋๋ค. ํ ๋ฒ์ RTT๋ก ๋ค์์ ๊ฐ์ฒด๋ค์ ๋ณด๋ผ ์ ์๊ธฐ์ response time์ ์ค์ผ ์ ์๋ค.
request line : method, url, version , carriage return, line-feed
Header lines
General format
Method
POST : client์ user input์ด entity body์ ๋ด๊ฒจ POST request message๋ก server์๊ฒ ์ ๋ฌ
GET : user data๊ฐ HTTP GET request message์ URL field์ ํฌํจ๋์ด ์ ๋ฌํ๋ค. ์ด๋ ํ ์ ๋ณด๋ฅผ ์กฐํํ ๋ ๋ง์ด ์ฌ์ฉ.
PUT : PUT HTTP request entity body์ content์ ํน์ URL์ ํ์ผ๊ณผ ๋์ฒดํ๋ค.
DELETE : web server์ ๊ฐ์ฒด๋ฅผ ์ญ์ ํ๋ค.
HEAD : ๊ธฐ๋ณธ์ ์ผ๋ก GET method ์ ๋์ผํ๋ค.
GET๊ณผ HEAD์ ์ฐจ์ด์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
HEAD๋ GET์ ์์ฒญ๊ณผ ๋์ผํ ์๋ต์ ์๊ตฌํ์ง๋ง, ์๋ต ๋ณธ๋ฌธ(body)์ ํฌํจํ์ง ์๋๋ค.
GET์ ํค๋์ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์๊ฒ ๋ณด๋ด๋ ๋ฐ๋ฉด, HEAD๋ฉ์๋๋ ํค๋ ์ธ์๋ ์ ์กํ์ง ์๋๋ค.
status line : versin, status code
Header lines
Status Codes
์ํ ์ฝ๋๋ 3์๋ฆฌ ์ซ์์ด๋ฉฐ ์ฒซ ๋ฒ์งธ ์๋ฆฌ๋ 1 ~ 5์ ์ซ์๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ 4, 5์ธ ๊ฒฝ์ฐ๋ ์ ์์ ์ธ ์ํฉ์ด ์๋๋ฏ๋ก ๊ด๋ฆฌ์๊ฐ ์ฆ์ ์์์ผ ํ๋ ์ ๋ณด์ด๋ค.
MDN : status codes
๐ [์ฐธ๊ณ ๋ฌธํ]
Computer Networking A Top-Down Approach 7-th Edition / Kurose, Ross / Pearson