์ ํ์ ์ธ HTTP ์ธ์
ํด๋ผ์ด์ธํธ-์๋ฒ ํ๋กํ ์ฝ์ HTTP์ ์ธ์ ์ ์ธ ๊ฐ์ง ๊ณผ์ ์ ๊ฑฐ์น๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ TCP ์ฐ๊ฒฐ ์๋ฆฝ(TCP๊ฐ ์๋์ด๋ ๋ค๋ฅธ ์ฐ๊ฒฐ ํ์)
- ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ ์ ์ก ํ ์๋ต ๋๊ธฐ
- ์๋ฒ๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์๋ต์ ์ํ ์ฝ๋, ์์ฒญ์ ๋ถํฉํ๋ ๋ฐ์ดํฐ์ ํจ๊ป ๋๋ ค๋ณด๋
HTTP/1.1๋ถํฐ๋ ์ธ ๋ฒ์งธ ๊ณผ์ ์ดํ ํด๋ผ์ด์ธํธ๊ฐ ํด๋น ์์ ์ ๋ ๋ค๋ฅธ ์์ฒญ์ ๋ณด๋ผ ์ ์๋๋ก ์ฐ๊ฒฐ์ ๋ซ์ง ์์ ๊ณ์ํด์ ์์ฒญ์ ๋ฐ์ ์ ์๋ค.
์ฐ๊ฒฐ
ํด๋ผ์ด์ธํธ๋ ์ฐ๊ฒฐ์ ์๋ฆฝํ๋ค. HTTP์์ ์ฐ๊ฒฐ์ ์ฐ๋ค๋ ๊ฒ์ TCP์ธ ๊ธฐ๋ณธ์ ์ธ ์ ์ก ๊ณ์ธต ๋ด์์ ์ฐ๊ฒฐํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
TCP ์ฐ๊ฒฐ์ ๊ฒฝ์ฐ HTTP ์๋ฒ๋ฅผ ์ํ ๊ธฐ๋ณธ ํฌํธ๋ 80์ด๋ค. (AWS์์ ๋ฐฐํฌํ ๋๋ ๊ธฐ๋ณธ ํฌํธ๋ฅผ 80์ผ๋ก ํด๋์ผ ๋์ค์ ๋๋ฉ์ธ์ Route53์ ํตํด์ ๋ฐ๊ฟ ์ ์๋ค). 8000๋ฑ์ ํฌํธ๋ค๋ ์ฐ์ด๊ธด ํ์ง๋ง 80์ ๊ฒฝ์ฐ์๋ URL์์ ํฌํธ ๋ฒํธ๋ฅผ ์๋ต ๊ฐ๋ฅํ ์ ์๊ธฐ ๋๋ฌธ์ ์ข๋ค.
ํด๋ผ์ด์ธํธ ์์ฒญ ์ ์ก
์ฐ๊ฒฐ์ด ๋ ํ์๋ user-agent(์น ๋ธ๋ผ์ฐ์ , ํฌ๋กค๋ฌ ๋ฑ)๋ ์์ฒญ์ ๋ณด๋ผ ์ ์๋ค. ํด๋ผ์ด์ธํธ ์์ฒญ์ ์ธ ๊ฐ์ง ๋ธ๋ก์ผ๋ก ๋๋์ด์ง CRLF(Carriage return, followed by line feed)๋ก ๊ตฌ๋ถ๋ ํ ์คํธ ์ง์์๋ค๋ก ์ด๋ฃจ์ด์ง๋ค.
GET / HTTP/1.1
Host: developer.mozilla.org
Accept-Language: fr- ์ฒซ๋ฒ์งธ ์ค โ Parameter๊ฐ ๋ฐ๋ฅธ๋ ์์ฒญ ๋ฉ์๋
- ๋ฌธ์์ ๊ฒฝ๋ก, ํ๋กํ ์ฝ๊ณผ ๋๋ฉ์ธ ์ด๋ฆ์ ์ ์ธํ ์ ๋๊ฒฝ๋ก URL
- ์ฌ์ฉ์ค์ธ HTTP ํ๋กํ ์ฝ ๋ฒ์
- ๋ค์ ์ค๋ค์ ๊ฐ๊ฐ ํน์ ํค๋๋ฅผ ๋ํ๋ธ๋ค. ๋ฐ์ดํฐ์ ์ ํฉ์ฑ, ์๋ฒ์ ๋์ฅ ์์ ๋ฐ์ดํฐ ๋ฑ์ ๊ดํ ๋ช ๊ฐ์ง ์ ๋ณด๋ฅผ ์๋ฒ์ ์ ๊ณตํ๋ค. ์ด๋ฐ ํค๋๋ ๋น ์ค๋ก ๋๋๋ ๋ธ๋ก์ ํ์ฑํ๋ค.
- ๋ง์ง๋ง ๋ธ๋ก์ ๋ถ๊ฐ์ ์ธ ๋ฐ์ดํฐ ๋ธ๋ก์ผ๋ก POST ๋ฉ์๋์ ์ํด ์ฌ์ฉ๋๋ค
POST /contact_form.php HTTP/1.1
Host: developer.mozilla.org
Content-Length: 64
Content-Type: application/x-www-form-urlencoded
name=Joe%20User&request=Send%20me%20one%20of%20your%20catalogue๊ฒฐ๊ณผ๋ ์ด๋ฐ ์์ผ๋ก ์ ์กํ๋ค.
์์ฒญ ๋ฉ์๋
์ฃผ์ด์ง ์์์ ๋ํด ์คํ๋๊ธธ ๋ฐ๋ผ๋ ๋์์ ๊ฐ๋ฆฌํค๋ ์์ฒญ ๋ฉ์๋๊ฐ ์ ์๋์ด ์๋ค.
| ์์ฒญ ๋ฉ์๋ | ๋์ |
|---|---|
| GET | ๋ฐ์ดํฐ ๋ฐ๊ธฐ |
| HEAD | GET๊ณผ ๋์ผํ ์๋ต(๋์ ์๋ต ๋ณธ๋ฌธ์ด ์์) |
| POST | ํน์ ๋ฆฌ์์ค์ ์ํฐํฐ ์ ์ถ |
| PUT | ์์ฒญ payload๋ฅผ ์ฌ์ฉํด ์๋ก์ด ๋ฆฌ์์ค ์์ฑ or ๋์ ๋ฆฌ์์ค๋ฅผ ๋ํ๋ด๋ ๋ฐ์ดํฐ ๋์ฒด. ๋ฉฑ๋ฑ์ฑ(๋์ผํ ์์ฒญ์ ํ ๋ฒ ๋ณด๋ด๋ ๊ฒ๊ณผ ์ฌ๋ฌ๋ฒ ๋ณด๋์ ๋ ๊ฐ์ ํจ๊ณผ, ์๋ฒ์ ์ํ๋ ๋์ผํ๊ฒ ๋จ์) |
| DELETE | ํน์ ๋ฆฌ์์ค ์ญ์ |
| CONNECT | ๋ชฉ์ ๋ฆฌ์์ค๋ก ์๋ฒ๋ก์ ํฐ๋(์๋ฐฉํฅ ์ฐ๊ฒฐ) ๋งบ๊ธฐ |
| OPTIONS | ๋ชฉ์ ๋ฆฌ์์ค์ ํต์ ์ค์ |
| PATCH | ๋ฆฌ์์ค์ ๋ถ๋ถ ์์ |
์๋ฒ ์๋ต ๊ตฌ์กฐ
์น ์๋ฒ๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์๋ต์ ๋ณด๋ธ๋ค. ์ด ๋ํ ์ธ ๊ฐ์ ๋ค๋ฅธ ๋ธ๋ก์ผ๋ก ๋๋์ด์ง CRLF๋ก ๊ตฌ๋ถ๋ ํ ์คํธ ์ง์์๋ค๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
HTTP/1.1 200 OK
Date: Sat, 09 Oct 2010 14:28:02 GMT
Server: Apache
Last-Modified: Tue, 01 Dec 2009 20:18:22 GMT
ETag: "51142bc1-7449-479b075b2891b"
Accept-Ranges: bytes
Content-Length: 29769
Content-Type: text/html
<!DOCTYPE html... (here comes the 29769 bytes of the requested web page)- ์ฒซ๋ฒ์งธ ์ค(์ํ์ค) โ HTTP ๋ฒ์ ์ acknowledgment
- ํน์ HTTPํค๋. ๋ฐ์ดํฐ์ ๊ดํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ณ ์ดํ ๋น ์ค๋ก ๋๋๋ ๋ธ๋ก ํ์ฑ
- ๋ง์ง๋ง ๋ธ๋ก โ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ฉด ๋ฐ์ดํฐ ๋ธ๋ก
์ฑ๊ณต ์๋ต

๋๋ถ๋ถ ๋ณด์ด๋ ๊ฒ๋ค๋ง ๋ณด์ธ๋ค