HyperText Transfer Protocol์ ์ค์๋ง๋ก, HTML๊ณผ ๊ฐ์ ๋ฌธ์๋ฅผ ์ ์กํ๊ธฐ ์ํ ํ๋กํ ์ฝ์ด๋ค.
์น ๋ธ๋ผ์ฐ์ ์ ์น ์๋ฒ์ ์ํต์ ์ํด ๋์์ธ๋์์ผ๋ฉฐ, ์ ํต์ ์ธ Client-Server ๋ชจ๋ธ์์ Client๊ฐ HTTP Messages ์์์ ๋ง์ถฐ ์์ฒญ์ ๋ณด๋ด๋ฉด, Server๋ HTTP Messages ์์์ ๋ง์ถฐ ์๋ตํ๋ค.
HTTP Messages๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์์ ๋ฐ์ดํฐ๊ฐ ๊ตํ๋๋ ๋ฐฉ์์ผ๋ก, ์์ฒญ(Request) ๋ฐ ์๋ต(Responses)์ผ๋ก ๊ตฌ๋ถ๋๋ค.
HTTP Messages๋ ๋ช ์ค์ ํ ์คํธ ์ ๋ณด๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๊ตฌ์ฑํ์ผ, API, ๊ธฐํ ์ธํฐํ์ด์ค์์ ์๋์ผ๋ก ์์ฑํด์ค๋ค.
์๋๋ HTTP Messages์ ๊ตฌ์กฐ์ด๋ค.
start line : ์์ฒญ์ด๋ ์๋ต์ ์ํ๋ฅผ ๋ํ๋ธ๋ค. ํญ์ ์ฒซ ๋ฒ์งธ ์ค์ ์์นํ๋ฉฐ, ์๋ต์์๋ status line์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
HTTP headers : ์์ฒญ์ ์ง์ ํ๊ฑฐ๋, ๋ฉ์์ง์ ํฌํจ๋ ๋ณธ๋ฌธ์ ์ค๋ช ํ๋ ํค๋์ ์งํฉ์ด๋ค.
empty line : ํค๋์ ๋ณธ๋ฌธ์ ๊ตฌ๋ถํ๋ ๋น ์ค
body : ์์ฒญ๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ ์๋ต๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ ๋๋ ๋ฌธ์๋ฅผ ํฌํจํ๋ฉฐ, ์์ฒญ๊ณผ ์๋ต์ ์ ํ์ ๋ฐ๋ผ ์ ํ์ ์ผ๋ก ์ฌ์ฉํ๋ค.
์ด ์ค start line๊ณผ HTTP headers๋ฅผ ๋ฌถ์ด ์์ฒญ์ด๋ ์๋ต์ ํค๋(head)๋ผ๊ณ ํ๊ณ , payload๋ body๋ผ๊ณ ๋ถ๋ฅธ๋ค.
HTTP์ ํฐ ํน์ง ์ค ํ๋์ด๋ฉฐ ๋ง ๊ทธ๋๋ก ์ํ๋ฅผ ๊ฐ์ง์ง ์๋๋ค๋ ๋ป์ผ๋ก, HTTP๋ก Client์ Server๊ฐ ํต์ ์ ์ฃผ๊ณ ๋ฐ๋ ๊ณผ์ ์์ HTTP๊ฐ Client๋ Server์ ์ํ๋ฅผ ํ์ธํ์ง ์๋๋ค.
์๋ฅผ๋ค์ด ์ฌ์ฉ์๋ ์ผํ๋ชฐ์ ๋ก๊ทธ์ธํ๊ฑฐ๋ ์ํ์ ํด๋ฆญํด์ ์์ธ ํ๋ฉด์ผ๋ก ์ด๋ํ๊ณ , ์ํ์ ์นดํธ์ ๋ด๊ฑฐ๋ ๋ก๊ทธ์์ํ ์๋ ์์ง๋ง, Client์์ ๋ฐ์ํ ์ด๋ฐ ๋ชจ๋ ์ํ๋ฅผ HTTP ํต์ ์ด ์ถ์ ํ์ง ์๋๋ค.
๋ง์ฝ ์ผํ๋ชฐ์์ ์นดํธ์ ๋ด๊ธฐ
๋ฒํผ์ ๋๋ ์ ๋, ์นดํธ์ ๋ด๊ธด ์ํ ์ ๋ณด(์ํ)๋ฅผ ์ ์ฅํด๋ฌ์ผ ํ์ง๋ง HTTP๋ ํต์ ๊ท์ฝ์ผ ๋ฟ์ด๋ฏ๋ก, ์ํ๋ฅผ ์ ์ฅํ์ง ์๋๋ค.
๋ฐ๋ผ์ ํ์์ ๋ฐ๋ผ ๋ค๋ฅธ ๋ฐฉ๋ฒ(์ฟ ํค-์ธ์ , API ๋ฑ)์ ํตํด ์ํ๋ฅผ ํ์ธํ ์ ์๋ค.
์ฆ, ์๋ฒ๊ฐ Client์ ์ํ๋ฅผ ๋ณด์กดํ์ง ์๊ธฐ ๋๋ฌธ์ Client๊ฐ ์์ฒญ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ด๊ณ ์ ๋ถ ๋ด๊ณ ์์ผ๋ฉฐ ์๋ฌด ์๋ฒ๋ ํธ์ถ์ด ๊ฐ๋ฅํ๋ฏ๋ก ์๋ฒ ํ์ฅ์ฑ(๋ฌดํ)์ด ๋์ง๋ง, Client๊ฐ ์ถ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์กํด์ผํ๋ ๋จ์ ์ด์๋ค.
TCP/IP์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฐ๊ฒฐ์ ์ ์งํ๋๋ฐ, ์ด ๊ฒฝ์ฐ ์์ฒญ์ ๋ณด๋ด์ง ์๋๋ผ๋ ์๋ฒ์ ์์์ด ์ง์์ ์ผ๋ก ์๋ชจ๋๋ค.
๊ทธ๋ฌ๋, HTTP๋ ๋น์ฐ๊ฒฐ์ฑ์ ๊ฐ์ง๊ณ ์๊ธฐ๋๋ฌธ์ ์ค์ ๋ก ์์ฒญ์ ์ฃผ๊ณ ๋ฐ์ ๋๋ง ์ฐ๊ฒฐ์ ์ ์งํ๊ณ ์๋ต์ ์ฃผ๊ณ ๋๋ฉด TCP/IP ์ฐ๊ฒฐ์ ๋์์ผ๋ก์จ ์ต์ํ์ ์์์ผ๋ก ์๋ฒ ์ ์ง๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
ํธ๋ํฝ์ด ๋ง์ง ์๊ณ ๋น ๋ฅธ ์๋ต์ ์ ๊ณตํ ์ ์๋ ๊ฒฝ์ฐ, ๋น์ฐ๊ฒฐ์ฑ์ ํจ์จ์ ์ง๋ง ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ ํ๊ณ๋ฅผ ๋ณด์ธ๋ค.
์์ธํ๊ฒ, ์น ๋ธ๋ผ์ฐ์ ๋ก ์ฌ์ดํธ๋ฅผ ์์ฒญํ ์, HTML, JavaScript, CSS, ์ถ๊ฐ ์ด๋ฏธ์ง ๋ฑ ๋ง์ ์์์ด ํจ๊ป ๋ค์ด๋ก๋ ๋๋ฉฐ ํด๋น ์์๋ค์ ๊ฐ๊ฐ ์ ์กํ ๋ ๋ง๋ค ์ฐ๊ฒฐ ๋ฐ ๋์์ ๋ฐ๋ณตํ๋ค.
๋ฐ๋ผ์, ํ์ฌ๋ ํจ์จ์ ์ํด HTTP ์ง์ ์ฐ๊ฒฐ์ ํตํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์๋ค.
โญ HTTP ์ง์ ์ฐ๊ฒฐ?
์ฐ๊ฒฐ์ด ์ด๋ฃจ์ด์ง ํ, ๊ฐ๊ฐ์ ์์๋ค์ ์์ฒญํ๊ณ ๋ชจ๋ ์์์ ๋ํ ์๋ต์ด ๋์์จ ํ์ ์ฐ๊ฒฐ์ ์ข
๋ฃํ๋ค.
Client๊ฐ Server์๊ฒ ๋ณด๋ด๋ ๋ฉ์์ง์ด๋ค. (Client -> Server)
์๋์ ๊ฐ์ 3๊ฐ์ง ์์๊ฐ ์๋ค.
1) ์ํํ ์์
(GET
, PUT
,POST
๋ฑ)์ด๋ ๋ฐฉ์(HEAD or OPTIONS)์ ์ค๋ช
ํ๋ HTTP method๋ฅผ ๋ํ๋ธ๋ค.
ex) `GET` method๋ ๋ฆฌ์์ค๋ฅผ ๋ฐ์์ผ ํ๊ณ , `POST` method๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ก ์ ์กํ๋ค.
2) ์์ฒญ ๋์(์ผ๋ฐ์ ์ผ๋ก URL or URI) ๋๋ ํ๋กํ ์ฝ, PORT, Domain์ ์ ๋ ๊ฒฝ๋ก๋ ์์ฒญ ์ปจํ ์คํธ์ ์์ฑ๋๋ฉฐ ์ด ์์ฒญ ํ์์ HTTP method ๋ง๋ค ๋ค๋ฅด๋ค.
origin ํ์
: '?'์ ์ฟผ๋ฆฌ ๋ฌธ์์ด์ด ๋ถ๋ ์ ๋ ๊ฒฝ๋ก๋ก, GET
, POST
, HEAD
, OPTIONS
๋ฑ์ method์ ํจ๊ป ์ฌ์ฉํ๋ค.
POST / HTTP 1.1
GET /background.png HTTP/1.0
HEAD /test.html?query=alibaba HTTP/1.1
OPTIONS /anypage.html HTTP/1.0
absolute ํ์
: ์์ ํ URL ํ์์ผ๋ก, ํ๋ก์์ ์ฐ๊ฒฐํ๋ ๊ฒฝ์ฐ ๋๋ถ๋ถ GET method์ ํจ๊ป ์ฌ์ฉํ๋ค.
GET http://developer.mozilla.org/en-US/docs/Web/HTTP/Messages HTTP/1.1
authority ํ์
: Domain ์ด๋ฆ๊ณผ PORT ๋ฒํธ๋ก ์ด๋ฃจ์ด์ง URL์ ์ผ๋ถ๋ถ์ผ๋ก, HTTP ํฐ๋์ ๊ตฌ์ถํ๋ ๊ฒฝ์ฐ, CONNECT์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ค.
CONNECT developer.mozilla.org:80 HTTP/1.1
asterisk ํ์
: OPTIONS ์ ํจ๊ป ๋ณํ(*
) ํ๋๋ก ์๋ฒ ์ ์ฒด๋ฅผ ํํํ๋ค.
OPTIONS * HTTP/1.1
3) HTTP ๋ฒ์ ์ ๋ฐ๋ผ HTTP message์ ๊ตฌ์กฐ๊ฐ ๋ฌ๋ผ์ง๋ค. ๋ฐ๋ผ์ start line์ HTTP ๋ฒ์ ์ ํจ๊ป ์ ๋ ฅํด์ผํ๋ค.
๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ฅด๋ฉฐ, ํค๋ ์ด๋ฆ(๋์๋ฌธ์ ๊ตฌ๋ถ์ด ์๋ ๋ฌธ์์ด), ์ฝ๋ก ( : ), ๊ฐ์ ์ ๋ ฅํ๋ค.
๊ฐ์ ํค๋์ ๋ฐ๋ผ ๋ค๋ฅด๋ฉฐ, ์ฌ๋ฌ ์ข ๋ฅ์ ํค๋๊ฐ ์๊ณ , ๋ค์๊ณผ ๊ฐ์ด ๊ทธ๋ฃน์ ๋๋ ์ ์๋ค.
General headers
: ๋ฉ์์ง ์ ์ฒด์ ์ ์ฉ๋๋ ํค๋๋ก, body๋ฅผ ํตํด ์ ์ก๋๋ ๋ฐ์ดํฐ์๋ ๊ด๋ จ์ด ์๋ค.Request headers
: fetch๋ฅผ ํตํด ๊ฐ์ ธ์ฌ ๋ฆฌ์์ค๋ Client ์์ฒด์ ๋ํ ์์ธํ ์ ๋ณด๋ฅผ ํฌํจํ๋ค.User-Agent
, Accept-Type
, Accept-Language
์ ๊ฐ์ ํค๋๋ ์์ฒญ์ ๋ณด๋ค ๊ตฌ์ฒดํํ๋ฉฐ, Referer
์ฒ๋ผ ์ปจํ
์คํธ๋ฅผ ์ ๊ณตํ๊ฑฐ๋ If-None
๊ณผ ๊ฐ์ด ์กฐ๊ฑด์ ๋ฐ๋ผ ์ ์ฝ์ ์ถ๊ฐํ ์ ์๋ค.์์ฒญ ํค๋ ๋ช | ์ค๋ช | ๋น๊ณ |
---|---|---|
From | ์ ์ ์์ด์ ํธ์ ์ด๋ฉ์ผ ์ ๋ณด | ์ ์ฌ์ฉX, ๊ฒ์์์ง์์ ์ฃผ๋ก ์ฌ์ฉ |
Referer | ์ด์ ์น ํ์ด์ง ์ฃผ์ | A->B ์ด๋ ์, A๋ฅผ ํฌํจํด์ ์์ฒญ, ์ฌ์ฉ ์ ์ ์ ๊ฒฝ๋ก ์์ง ๊ฐ๋ฅ |
User-Agent | ํด๋ผ์ด์ธํธ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด, ํต๊ณ ์ ๋ณด | user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)...Safari/537.36 |
Host | ์์ฒญํ ํธ์คํธ ์ ๋ณด(๋๋ฉ์ธ), ํ์ํค๋ | ํ๋์ ์๋ฒ๊ฐ ์ฌ๋ฌ ๋๋ฉ์ธ์ ์ฒ๋ฆฌํ ๋, ๋๋ ํ๋์ IP ์ฃผ์์ ์ฌ๋ฌ ๋๋ฉ์ธ์ด ์ ์ฉ๋์ด ์์ ๋ ํธ์คํธ ์ ๋ณด๋ฅผ ๋ช ์ํ๊ธฐ ์ํจ |
Origin | ์๋ฒ๋ก POST ์์ฒญ์ ๋ณด๋ผ ๋, ์์ฒญ์ ์์ํ ์ฃผ์ | ์ก์์ ์ฃผ์๊ฐ ๋ค๋ฅด๋ฉด CORS ์๋ฌ ๋ฐ์, ์๋ต ํค๋์ Access-Control-Allow-Origin๊ณผ ๊ด๋ จ |
Authorization | ์ธ์ฆ ํ ํฐ์ ์๋ฒ๋ก ๋ณด๋ผ ๋ ์ฌ์ฉ, ํ ํฐ์ ์ข ๋ฅ+์ค์ ํ ํฐ ๋ฌธ์๋ฅผ ์ ์ก | Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l |
Representation headers
(์์ฒญ ๋ฐ ์๋ต ๋ ๋ค ์ฌ์ฉ) : ์ด์ ์๋ Entity headers
๋ก ๋ถ๋ ์ผ๋ฉฐ, HTTP ์ ์ก์ ํ์ํ ๋ชจ๋ ๋ถ๊ฐ์ ๋ณด๋ฅผ ๋ด๊ธฐ์ํด ์ฌ์ฉํ๋ค. body์ ๋ด๊ธด ๋ฆฌ์์ค์ ์ ๋ณด(์ฝํ
์ธ ๊ธธ์ด, MIME ํ์
๋ฑ)๋ฅผ ํฌํจํ๋ค.ํํ ํค๋ ๋ช | ์ค๋ช | ์์ |
---|---|---|
Content-Type | ํํ ๋ฐ์ดํฐ์ ํ์ ๋ฏธ๋์ด ํ์ , ๋ฌธ์ ์ธ์ฝ๋ฉ | Text/html; charset=utf-8 application/json Image/png |
Content-Encoding | ํํ ๋ฐ์ดํฐ์ ์์ถ ๋ฐฉ์ | qzip deflate identity |
Content-Language | ํํ ๋ฐ์ดํฐ์ ์์ฐ ์ธ์ด | ko en en-US |
Content-Length | ํํ ๋ฐ์ดํฐ์ ๊ธธ์ด byte๋จ์ | ์ซ์(1,2,3...) Transfer-Encoding(Chunked ๋ฐฉ์) ์ฌ์ฉ ์ ์ ์ฒด ๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ฅผ ์ ์ ์์ผ๋ฏ๋ก Content-Length ์ฌ์ฉ ๋ถ๊ฐ |
์์ฒญ์ ๋ณธ๋ฌธ(Body)์ HTTP messages ๊ตฌ์กฐ์ ๋ง์ง๋ง์ ์์นํ๋ฉฐ, ๋ชจ๋ ์์ฒญ์ body๊ฐ ํ์ํ์ง๋ ์๋ค.
GET
, HEAD
, DELETE
, OPTIONS
์ฒ๋ผ ์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ์์ฒญํ๋ ๊ฒฝ์ฐ์๋ ๋ณธ๋ฌธ์ด ํ์ํ์ง ์์ผ๋ฉฐ, POST
๋ PUT
๊ณผ ๊ฐ์ ์ผ๋ถ ์์ฒญ์ ๋ฐ์ดํฐ๋ฅผ ์
๋ฐ์ดํธํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
body๋ ๋ค์๊ณผ ๊ฐ์ด ๋ ์ข ๋ฅ๋ก ๋๋ ์ ์๋ค.
Single-resource bodies(๋จ์ผ-๋ฆฌ์์ค ๋ณธ๋ฌธ)
: ํค๋ ๋ ๊ฐ(Content-Type
, Content-Length
)๋ก ์ ์๋ ๋จ์ผ ํ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
Multiple-resource bodies(๋ค์ค-๋ฆฌ์์ค ๋ณธ๋ฌธ)
: ์ฌ๋ฌ ํํธ๋ก ๊ตฌ์ฑ๋ ๋ณธ๋ฌธ์์๋ ๊ฐ ํํธ๋ง๋ค ๋ค๋ฅธ ์ ๋ณด๋ฅผ ์ง๋๋ฉฐ ๋ณดํต HTML form๊ณผ ๊ด๋ จ์ด ์๋ค.
Server๊ฐ Client์๊ฒ ๋ณด๋ด๋ ๋ฉ์์ง์ด๋ค. (Server -> Client)
์๋์ ์ ๋ณด๋ฅผ ๋ํ๋ธ๋ค.
HTTP/1.1
)200, 302, 404 ๋ฑ
)ex) HTTP/1.1 404 Not Found
๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ๋์๋ฌธ์ ๊ตฌ๋ถ ์๋ ๋ฌธ์์ด, ์ฝ๋ก (:), ๊ฐ์ ์ ๋ ฅํ๋ค.
๊ฐ์ ํค๋์ ๋ฐ๋ผ ๋ค๋ฅด๋ฉฐ, ์ฌ๋ฌ ์ข ๋ฅ์ ํค๋๊ฐ ์๊ณ , ๋ค์๊ณผ ๊ฐ์ด ๊ทธ๋ฃน์ ๋๋ ์ ์๋ค.
General headers
: ๋ฉ์์ง ์ ์ฒด์ ์ ์ฉ๋๋ ํค๋๋ก, body๋ฅผ ํตํด ์ ์ก๋๋ ๋ฐ์ดํฐ์๋ ๊ด๋ จ์ด ์๋ค.Response headers
: ์์น ๋๋ ์๋ฒ ์์ฒด์ ๋ํ ์ ๋ณด(์ด๋ฆ, ๋ฒ์ ๋ฑ)์ ๊ฐ์ด ์๋ต์ ๋ํ ๋ถ๊ฐ์ ์ธ ์ ๋ณด๋ฅผ ๊ฐ๋ ํค๋๋ก, Vary
, Accept-Ranges
์ ๊ฐ์ด ์ํ ์ค์ ๋ฃ๊ธฐ์๋ ๊ณต๊ฐ์ด ๋ถ์กฑํ๋ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ค.์๋ต ํค๋ ๋ช | ์ค๋ช | ๋น๊ณ |
---|---|---|
Server | ์์ฒญ์ ์ฒ๋ฆฌํ๋ Origin ์๋ฒ์ ์ํํธ์จ์ด ์ ๋ณด | Server: Apache/2.2.22 (Debian) Server: nginx |
Date | ๋ฉ์์ง๊ฐ ๋ฐ์ํ ๋ ์ง,์๊ฐ | Date: Tue, 15 Nov 1994 08:12:31 GMT |
Location | ํ์ด์ง ๋ฆฌ๋๋ ์ , ์น ๋ธ๋ผ์ฐ์ ๋ 3xx ์๋ต์ ๊ฒฐ๊ณผ์ Location ํค๋๊ฐ ์์ผ๋ฉด, Location ์์น๋ก ๋ฆฌ๋ค์ด๋ ํธ(์๋ ์ด๋) | โพ 201(Created): Location ๊ฐ์ ์์ฒญ์ ์ํด ์์ฑ๋ ๋ฆฌ์์ค URI โพ 3xx(Redirection): Location ๊ฐ์ ์์ฒญ์ ์๋์ผ๋ก ๋ฆฌ๋๋ ์ ํ๊ธฐ ์ํ ๋์ ๋ฆฌ์์ค๋ฅผ ๊ฐ๋ฆฌํด |
Allow | ํ์ฉ ๊ฐ๋ฅํ HTTP ๋ฉ์๋ | Allow: GET, HEAD, PUT |
Retry-After | Client๊ฐ ๋ค์ ์์ฒญ์ ํ๊ธฐ๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ ์๊ฐ | โพ 503(Service Unavailable): ์๋น์ค๊ฐ ์ธ์ ๊น์ง ๋ถ๋ฅ์ธ์ง ์๋ ค์ค ์ ์์ โพ Retry-After: Fri, 31 Dec 2020 23:59:59 GMT(๋ ์ง ํ๊ธฐ) โพ Retry-After: 120(์ด ๋จ์ ํ๊ธฐ) |
Representation headers
: ์ด์ ์๋ Entity headers
๋ก ๋ถ๋ ์ผ๋ฉฐ, body์ ๋ด๊ธด ๋ฆฌ์์ค์ ์ ๋ณด(์ฝํ
์ธ ๊ธธ์ด, MIME ํ์
๋ฑ)๋ฅผ ํฌํจํ๋ค.์๋ต์ ๋ณธ๋ฌธ(body)์ HTTP messages ๊ตฌ์กฐ์ ๋ง์ง๋ง์ ์์นํ๋ฉฐ, ๋ชจ๋ ์๋ต์ body๊ฐ ํ์ํ์ง๋ ์๋ค.
201
, 204
์ ๊ฐ์ ์ํ ์ฝ๋๋ฅผ ๊ฐ์ง๋ ์๋ต์๋ ๋ณธ๋ฌธ์ด ํ์ํ์ง ์๋ค.
์๋ต์ body๋ ๋ค์๊ณผ ๊ฐ์ด ๋ ์ข ๋ฅ๋ก ๋๋ ์ ์๋ค.
Single-resource bodies(๋จ์ผ-๋ฆฌ์์ค ๋ณธ๋ฌธ)
:
๊ธธ์ด๊ฐ ์๋ ค์ง ๋จ์ผ-๋ฆฌ์์ค ๋ณธ๋ฌธ์ ๋ ๊ฐ์ ํค๋(Content-Type
, Content-Length
)๋ก ์ ์ํ๋ค.
๊ธธ์ด๋ฅผ ๋ชจ๋ฅด๋ ๋จ์ผ ํ์ผ๋ก ๊ตฌ์ฑ๋ ๋จ์ผ-๋ฆฌ์์ค ๋ณธ๋ฌธ์ Transfer-Encoding
์ด chunked
๋ก ์ค์ ๋์ด ์์ผ๋ฉฐ, ํ์ผ์ chunk๋ก ๋๋์ด ์ธ์ฝ๋ฉ๋์ด ์๋ค.
Multiple-resource bodies(๋ค์ค-๋ฆฌ์์ค ๋ณธ๋ฌธ)
: ์๋ก ๋ค๋ฅธ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ body์ด๋ค.
ํด๋ผ์ด์ธํธ๊ฐ ์ ํธํ๋ ํํ ์์ฒญ(์์ฒญ์์๋ง ์ฌ์ฉ)
ํํ ํค๋ ๋ช | ์ค๋ช |
---|---|
Accept | ํด๋ผ์ด์ธํธ๊ฐ ์ ํธํ๋ ๋ฏธ๋์ด ํ์ ์ ๋ฌ |
Accept-Charset | ํด๋ผ์ด์ธํธ๊ฐ ์ ํธํ๋ ๋ฌธ์ ์ธ์ฝ๋ฉ |
Accept-Encoding | ํด๋ผ์ด์ธํธ๊ฐ ์ ํธํ๋ ์์ถ ์ธ์ฝ๋ฉ |
Accept-Language | ํด๋ผ์ด์ธํธ๊ฐ ์ ํธํ๋ ์์ฐ ์ธ์ด |
ํ์ ํค๋์์๋ ์ํ๋ ์ฝํ ์ธ ์ ๋ํ ์ฐ์ ์์๋ฅผ ์ง์ ํ ์ ์๋ค. Quality Values(q)๊ฐ์ ์ฌ์ฉํ๋ฉฐ, 0~1 ์ฌ์ด์ ์ซ์๋ก, ํด ์๋ก ๋์ ์์๋ฅผ ๊ฐ๋๋ค.
ex) Accept-Language: ko-KR;q=1,ko;q=0.9,en-US;q=0.8,en;1=0.7 (q=1 ์ ์๋ต ๊ฐ๋ฅ)
๋ง์ฝ ๊ธฐ๋ณธ ๋ ์ผ์ด, ์์ด ์ง์ ๊ฐ๋ฅํ ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ์์ ๊ฐ์ด ์ฐ์ ์์๋ฅผ ์์ฒญํ๊ฒ ๋๋ฉด, 1์์์ธ ํ๊ตญ์ด๋ฅผ ์๋ฒ์์ ์ง์ํ์ง ์์ง๋ง, 2์์์ธ ์์ด๋ฅผ ๊ธฐ๋ณธ ์ง์ ์ธ์ด์ธ ๋ ์ผ์ด๋ณด๋ค ํด๋ผ์ด์ธํธ๊ฐ ์ ํธํ๊ธฐ ๋๋ฌธ์ ์์ด๋ก ์๋ต์ ์ฃผ๊ฒ๋๋ค.
Reference: ์ฝ๋์คํ ์ด์ธ