๐ก ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด ๋ฐ์ดํฐ๊ฐ ๊ตํ๋๋ ๋ฐฉ์
๐ก ๊ตฌ์ฑ ํ์ผ, API, ๊ธฐํ ์ธํฐํ์ด์ค์์ HTTP Messages๋ฅผ ์๋์ผ๋ก ์์ฑ
๐ก requests(์์ฒญ) / reponses(์๋ต)
๐ ๊ตฌ์กฐ
start line
์์ฒญ์ด๋ ์๋ต์ ์ํ. responses์์๋ status line์ด๋ผ๊ณ ํจ
HTTP headers
์์ฒญ์ ์ง์ , ๋ณธ๋ฌธ์ ์ค๋ช
ํจ
empty line
ํค๋์ ๋ณธ๋ฌธ์ ๊ตฌ๋ณ
body
์์ฒญ๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ ์๋ต๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ
์์ฒญ์ด๋ ์๋ต์ head start line & HTTP headers
์์ฒญ์ด๋ ์๋ต์ payload body
๐ ๋ฌด์ํ์ฑ(stateless)
HTTP๋ก ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ํต์ ์ค, HTTP๊ฐ ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์ํ๋ฅผ ํ์ธํ์ง ์์
ํด๋ผ์ด์ธํธ์์ ๋ฐ์ํ ๋ชจ๋ ์ํ๋ฅผ HTTP ํต์ ์ด ์ถ์ ํ์ง ์๋๋ค๋ ๋ป
๐ก ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ๋ณด๋ด๋ ๋ฉ์์ง
๐ start line
โพ๏ธ HTTP method
์ํํ ์์
(GET, POST), ๋ฐฉ์(HEAD or OPTIONS) ์ค๋ช
โพ๏ธ ์์ฒญ ๋์(URL, URI), ํ๋กํ ์ฝ, ํฌํธ, ๋๋ฉ์ธ์ ์ ๋ ๊ฒฝ๋ก
ย ย ย ย ย ย -origin ํ์ : '?'์ ์ฟผ๋ฆฌ ๋ฌธ์์ด์ด ๋ถ๋ ์ ๋ ๊ฒฝ๋ก
ย ย ย ย ย POST / HTTP 1.1
ย ย ย ย ย -absolute ํ์ : URL ํ์
ย ย ย ย ย ํ๋ก์์ ๋ถ๋ ๊ฒฝ์ฐ GET ์ฌ์ฉ
ย ย ย ย ย GET http://developer.mozilla.org/en-US/docs/Web/HTTP/Messages HTTP/1.1
ย ย ย ย ย -authority ํ์ : ๋ฉ์ธ ์ด๋ฆ๊ณผ ํฌํธ ๋ฒํธ๋ก ์ด๋ฃจ์ด์ง URL์ ์ผ๋ถ๋ถ
ย ย ย ย ย HTTP ํฐ๋์ ๊ตฌ์ถํ๋ ๊ฒฝ์ฐ, CONNECT์ ํจ๊ป ์ฌ์ฉ ๊ฐ๋ฅ
ย ย ย ย ย CONNECT developer.mozilla.org:80 HTTP/1.1
ย ย ย ย ย -asterisk ํ์ : OPTIONS ์ ํจ๊ป ๋ณํ()๋ก ์๋ฒ ์ ์ฒด๋ฅผ ํํ
ย ย ย ย ย OPTIONS HTTP/1.1
โพ๏ธ HTTP ๋ฒ์
๐ header
ํค๋ ์ด๋ฆ(๋์๋ฌธ์ ๊ตฌ๋ถ์ด ์๋ ๋ฌธ์์ด), ์ฝ๋ก ( : ), ๊ฐ์ ์
๋ ฅ
-General headers : ๋ฉ์์ง ์ ์ฒด์ ์ ์ฉ, body์ ๋ฐ์ดํฐ์๋ ๊ด๋ จ์ด ์์
-Request headers : fetch๋ก ๊ฐ์ ธ์จ ๋ฆฌ์์ค๋ ํด๋ผ์ด์ธํธ ์์ฒด์ ๋ํ ์ ๋ณด
User-Agent, Accept-Type, Accept-Language, Referer, If-None
-Representation headers : Entity headers, body์ ๋ฆฌ์์ค์ ์ ๋ณด(์ฝํ
์ธ ๊ธธ์ด, MIME ํ์
๋ฑ)๋ฅผ ํฌํจ
๐ body
GET, HEAD, DELETE, OPTIONS์ฒ๋ผ ์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ์์ฒญํ๋ ๊ฒฝ์ฐ์๋ ๋ถํ์
-Single-resource bodies : ๋จ์ผ-๋ฆฌ์์ค ๋ณธ๋ฌธ, ํค๋ ๋ ๊ฐ(Content-Type๊ณผ Content-Length)๋ก ์ ์๋ ๋จ์ผ ํ์ผ
-Multiple-resource bodies : ๋ค์ค-๋ฆฌ์์ค ๋ณธ๋ฌธ, ๊ฐ ํํธ๋ง๋ค ๋ค๋ฅธ ์ ๋ณด, HTML form๊ณผ ๊ด๋ จ๋จ
๐ Status line
์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ด๋ ๋ฉ์์ง
ํ์ฌ ํ๋กํ ์ฝ์ ๋ฒ์ , ์ํ ์ฝ๋(์์ฒญ์ ๊ฒฐ๊ณผ), ์ํ ํ
์คํธ(์ค๋ช
)
๐ Headers
-General headers : ๋ฉ์์ง ์ ์ฒด ์ ์ฉ๋จ. body์ ๋ฐ์ดํฐ์๋ ์๊ด ์์
-Response headers : ์์น ๋๋ ์๋ฒ ์์ฒด์ ๋ํ ์ ๋ณด(์ด๋ฆ, ๋ฒ์ ๋ฑ)์ ๊ฐ์ด ์๋ต์ ๋ํ ๋ถ๊ฐ์ ์ธ ์ ๋ณด
-Representation headers : body์ ๋ด๊ธด ๋ฆฌ์์ค์ ์ ๋ณด(์ฝํ
์ธ ๊ธธ์ด, MIME ํ์
๋ฑ)๋ฅผ ํฌํจ
๐ Body
201, 204์ ๊ฐ์ ์ํ ์ฝ๋๋ฅผ ๊ฐ์ง๋ ์๋ต์ ๋ณธ๋ฌธ์ด ํ์ ์์
-Single-resource bodies : ๋จ์ผ-๋ฆฌ์์ค ๋ณธ๋ฌธ, ๊ธธ์ด๋ฅผ ์ ๊ฒฝ์ฐ ๋ ๊ฐ์ ํค๋(Content-Type, Content-Length)๋ก ์ ์, ๊ธธ์ด๋ฅผ ๋ชจ๋ฅผ ๊ฒฝ์ฐ Transfer-Encoding์ด chunked ๋ก ์ค์ ๋์ด ์์ผ๋ฉฐ, ํ์ผ์ chunk๋ก ๋๋์ด ์ธ์ฝ๋ฉ
-Multiple-resource bodies : ๋ค์ค-๋ฆฌ์์ค ๋ณธ๋ฌธ, ์๋ก ๋ค๋ฅธ ์ ๋ณด๋ฅผ ๋ด์ body