-
[Computer Network] HTTPComputer Science/Computer Network 2020. 5. 30. 15:00
๐HTTP (Hypertext Transfer Protocol)
โพ HTTP๋ Web์์์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ํ๋กํ ์ฝ์ด๋ค.
โพ HTTP/1, HTTP/2๋ TCP ๊ธฐ๋ฐ์ด๊ณ , HTTP/3์ UDP ๊ธฐ๋ฐ์ด๋ค.
1๏ธโฃ Client-Server Model
โพ HTTP๋ Client-Server Model๋ก ๊ตฌํ๋๋ค.
โพ Chrome, Internet Explore, Fire Fox ๋ฑ ์น ๋ธ๋ผ์ฐ์ ๋ HTTP Client ๋จ์ ๊ตฌํํ๋ค.
โพ Web Server๋ HTTP์ Server ๋จ์ ๊ตฌํํ๋ค.
โพ Client๊ฐ Server์๊ฒ ์ ๋ณด๋ฅผ Request ํ๋ฉด, Server๋ Response ํ๋ฉฐ ์ ๋ณด๋ฅผ Client์๊ฒ ์ ๋ฌํ๋ค.
2๏ธโฃ Stateless Protocol
โพ HTTP Server๋ Client์ Request ๋ด์ญ์ ๊ธฐ์ตํ์ง ์๋๋ค.
โพ ์ฆ, Server๋ Client๊ฐ ๋๊ตฌ์ธ์ง ์๋ณํ ์ ์๋ค. (๊ทธ๋์ Cookie์ Session์ ์ฌ์ฉํ๋ค.)
3๏ธโฃ HTTP Connection
โพ Non-Persistent Connection : ํ ๋ฒ์ TCP ์ฐ๊ฒฐ์, ํ๋์ ๊ฐ์ฒด๋ฅผ ์ ์กํ ์ ์๋ค. ๊ฐ๊ฐ์ ๋ชจ๋ ์์ฒญ์ ๋ํ TCP ์ฐ๊ฒฐ์ด ํ์ํ๋ค. ๋ฐ๋ผ์ ๋ชจ๋ Request/Response์ ๋ํ TCP ์ฐ๊ฒฐ์ ์ ์งํ๋ค. ์ด๋ Client์ Server๋ ์ฌ๊ฐํ ๋ถ๋ด์ ์ค๋ค. ๋ํ ๋งค๋ฒ TCP ์ฌ์ ์ฐ๊ฒฐ ์ค์ ์๊ฐ์ด ํ์ํ๋ค๋ ๋จ์ ์ด ์๋ค.
โพ Persistent Connection : ํ ๋ฒ์ TCP ์ฐ๊ฒฐ์, ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ฒด๋ฅผ ์ ์กํ ์ ์๋ค. Sever๊ฐ Client์๊ฒ Response๋ฅผ ๋ณด๋ธ ํ์ TCP ์ฐ๊ฒฐ์ ๊ทธ๋๋ก ์ ์งํ๋ค. (HTTP ์๋ฒ๋ ์ผ์ ๊ธฐ๊ฐ ์ฌ์ฉ๋์ง ์์ผ๋ฉด(timeout), ์ฐ๊ฒฐ์ ๋ซ๋๋ค.) Pipelining์ด ๊ฐ๋ฅํ๋ค๋ ์ฅ์ ์ด์๋ค.
4๏ธโฃ HTTP Method Type
โพ GET : ์๋ฒ์ ๋ฐ์ดํฐ ์ ์ก์ ์์ฒญ
โพ POST : ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ๋ฐ์ดํฐ ์ ์ก
โพ PUT : ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ๋ฐ์ดํฐ ์ ์ฒด ๊ฐฑ์ ์์ฒญ
โพ PATCH : ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ๋ฐ์ดํฐ ์ผ๋ถ ๊ฐฑ์ ์์ฒญ
โพ DELETE : ์๋ฒ์ ๋ฐ์ดํฐ ์ญ์ ์์ฒญ
โพ HEAD : ์๋ฒ์ ํค๋ ์์ฒญ
5๏ธโฃ HTTP Satus Code
โพ 200 OK : ์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ๋์๋ค.
โพ 201 Moved Permanently : ์์ฒญ ๊ฐ์ฒด๊ฐ ์์ํ ์ด๋ ๋์๋ค.
โพ 400 Bad Request : ์๋ฒ๊ฐ ์์ฒญ์ ์ดํดํ ์ ์๋ ์ค๋ฅ ์ฝ๋
โพ 404 Not Found : ์๋ฒ์์ ์์ฒญ๋ฐ์ ๋ฆฌ์์ค๋ฅผ ์ฐพ์ ์ ์๋ค.
โพ 505 HTTP VErsion Not Supported : ์์ฒญ HTTP ํ๋กํ ์ฝ ๋ฒ์ ์ ์๋ฒ๊ฐ ์ง์ํ์ง ์๋๋ค.
6๏ธโฃ HTTP Message Format
โพ HTTP Message๋ ASCII๋ก ์ฐ์ฌ์์ด์ ์ฌ๋์ด ์ฝ์ ์ ์๋ค.
โพ HTTP Message์ ๊ฐ ์ค์ CR๊ณผ LF๋ก ๊ตฌ๋ณ๋๋ค. ๋ง์ง๋ง ์ค์ ์ถ๊ฐ CR๊ณผ LF๊ฐ ์๊ตฌ๋๋ค.
๐ HTTP Request Massage
๐ ๋ถ์
โพ HTTP Request Massage์ ์ฒซ ์ค์ Request line์ด๋ค. HTTP Method, URL, HTTP ๋ฒ์ ํ๋๋ฅผ ๊ฐ๋๋ค.
โพ HTTP ๋ฒ์ ์ 1.1์ด๊ณ /index.html ๊ฐ์ฒด๋ฅผ GET ๋ฐฉ์์ผ๋ก ์์ฒญํ๊ณ ์๋ค.
โพ Host : ๊ฐ์ฒด๊ฐ ์กด์ฌํ๋ ํธ์คํธ๋ www-net.cs.umass.edu ์ด๋ค.
โพ User-Agent : Server์๊ฒ ์์ฒญํ๋ ๋ธ๋ผ์ฐ์ ํ์ ์ด๋ค. Firefox 3.6.10 ๋ฒ์ ์์ ์ ์ ์๋ค.
โพ Accept-Language : ์์ฒญํ๋ ๊ฐ์ฒด์ ์ธ์ด ๋ฒ์ ์ด๋ค. ์์ด(๋ฏธ๊ตญ), ์์ด ๋ฒ์ ์ ์์ฒญํ๋ค.
โพ Accept-Encoding : ์๋ต ๊ฐ์ฒด๋ฅผ gzip ๋๋ deflate ์์ถ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์์ถํด์ ๋ณด๋ด๋ ๋จ์ ๋ํ๋ธ๋ค.
โพ Accept-Charset : ํด๋ผ์ด์ธํธ๊ฐ ์ง์ํ๋ ์ธ์ฝ๋ฉ์ ๋ํ๋ธ๋ค. ํด๋ผ์ด์ธํธ๊ฐ ISO-8859-1 ๋๋ utf-8 ์ธ์ฝ๋ฉ์ ์ง์ํจ์ ์ ์ ์๋ค.
โพ Connection : keep-alive๋ก ๋์ด์๋ค. Persistent Connection ์ฐ๊ฒฐ์ ์ฌ์ฉํ๋ค.
โพ Keep-Alive : Persistent Connection ์ฐ๊ฒฐ ์ง์ ์๊ฐ์ด๋ค. (์ด๋จ์) 115์ด์ time out์ ๊ฐ๋๋ค.
๐ HTTP Response Massage
๐ ๋ถ์
โพ HTTP Response Massage์ ์ฒซ ์ค์ Satus Line์ด๋ค. HTTP ๋ฒ์ , ์ํ ์ฝ๋, ์ํ ๋ฉ์ธ์ง ํ๋๋ฅผ ๊ฐ๋๋ค.
โพ Date : Response Message๋ฅผ ๋ณด๋ธ ์๊ฐ์ ์๋ฏธํ๋ค. 2010๋ 9์ 26์ผ ์ผ์์ผ 20:09:20 GMT์ ์๋ต ๋ฉ์ธ์ง๋ฅผ ๋ณด๋๋ค.
โพ Server : Response Message๊ฐ Apache ์น ์๋ฒ์ ์ํด ๋ง๋ค์ด์ก์์ ๋ํ๋ธ๋ค. Request Message์ User-agent์ ๋น์ทํ๋ค.
โพ Last-Modified : ๊ฐ์ฒด๊ฐ ์์ฑ๋๊ฑฐ๋ ๋ง์ง๋ง์ผ๋ก ์์ ๋ ์๊ฐ๊ณผ ๋ ์ง๋ฅผ ๋ํ๋ธ๋ค. ํ๋ก์ ์๋ฒ์์ ์บ์ฑ์ ํ ๋ ๋งค์ฐ ์ค์ํ๋ค. 2007๋ 10์ 30์ผ ์์์ผ 17:00:02 GMT์ ๋ง์ง๋ง์ผ๋ก ์์ ๋์์ ์ ์ ์๋ค.
โพ Content-Length : ์ก์ ๋๋ ๊ฐ์ฒด์ ๋ฐ์ดํธ ์๋ฅผ 1 ๋ํ๋ธ๋ค. ๊ฐ์ฒด์ ํฌ๊ธฐ๋ 2652 Byte์ด๋ค.
โพ Content-Type : ๊ฐ์ฒด์ ํ์ ์ ๋ํ๋ธ๋ค. html text์์ ์ ์ ์๋ค.
๋ ์์๋ณด๊ธฐ
๋๋ณด๊ธฐโพ HTTP 1.1 Keep-Alive ๊ธฐ๋ฅ : https://b.pungjoo.com/entry/HTTP-11-Keep-Alive-%EA%B8%B0%EB%8A%A5%EC%97%90-%EB%8C%80%ED%95%B4
โพ HTTP/3๋ ์ UDP๋ฅผ ์ ํํ ๊ฒ์ผ๊น? : https://evan-moon.github.io/2019/10/08/what-is-http3/
โพ HTTP ์์ถ ์๋ ์๋ฆฌ : http://www.simpleisbest.net/archive/2005/07/18/185.aspx
โพ HTTP ์ธ์ฝ๋ฉ, ๊ตญ์ ํ ๊ด๋ จ : https://feel5ny.github.io/2020/01/13/HTTP_016/
โพ HTTP ์ํ ์ฝ๋ : https://developer.mozilla.org/ko/docs/Web/HTTP/Status
'Computer Science > Computer Network' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Computer Network] SOP & CORS (0) 2020.06.02 [Computer Network] Web Cache (0) 2020.06.01 [Computer Network] Protocol Layer (0) 2020.05.29 [Computer Network] UDP & TCP (0) 2020.05.09