Jieunny์ ๋ธ๋ก๊ทธ
S2) Unit 7. [HTTP/๋คํธ์ํฌ] HTTP ๋ณธ๋ฌธ
๐ฃ HTTP
1๏ธโฃ HTTP Message : ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์์ ๋ฐ์ดํฐ๊ฐ ๊ตํ๋๋ ๋ฐฉ์
โฐ ์์ฒญ๊ณผ ์๋ต์ด ์๋ค.
โฐ HTTP Message๋ ๋ช ์ค์ ํ ์คํธ ์ ๋ณด๋ก ๊ตฌ์ฑ๋๋ค.
โฐ start line : ์์ฒญ์ด๋ ์๋ต์ ์ํ๋ฅผ ๋ํ๋ด๋ฉฐ ํญ์ ์ฒซ ๋ฒ์งธ ์ค์ ์์นํ๋ค.
์๋ต์์๋ status line ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
โฐ HTTP headers : ์์ฒญ์ ์ง์ ํ๊ฑฐ๋, ๋ฉ์์ง์ ํฌํจ๋ ๋ณธ๋ฌธ์ ์ค๋ช ํ๋ ํค๋์ ์งํฉ
โฐ empty line : ํค๋์ ๋ณธ๋ฌธ์ ๊ตฌ๋ถํ๋ ๋น ์ค
โฐ body : ์์ฒญ๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ ์๋ต๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ ๋๋ ๋ฌธ์๋ฅผ ํฌํจํ๋ค.
์์ฒญ๊ณผ ์๋ต์ ์ ํ์ ๋ฐ๋ผ ์ ํ์ ์ผ๋ก ์ฌ์ฉ๋๋ค.
โฐ start line + HTTP headers = head
โฐ Stateless(๋ฌด์ํ์ฑ) : HTTP์ ํฐ ํน์ง์ผ๋ก ์ํ๋ฅผ ์ ์ฅํ์ง ์๋ ๊ฒ
2๏ธโฃ HTTP Requests
โ๏ธ Start line : ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ๋ณด๋ด๋ ๋ฉ์ธ์ง
โฐ start line์ ์ธ๊ฐ์ง ์์
1) ์ํํ ์์ (GET, POST ๋ฑ)์ด๋ ๋ฐฉ์(HEAD or OPTIONS)์ ์ค๋ช ํ๋ HTTP method๋ฅผ ๋ํ๋ธ๋ค.
์๋ฅผ ๋ค์ด GET method๋ ๋ฆฌ์์ค๋ฅผ ๋ฐ์์ผํ๊ณ , POST method๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ก ์ ์กํ๋ค.
2) ์์ฒญ ๋์(URL์ด๋ URI) ๋๋ ํ๋กํ ์ฝ, ํฌํธ, ๋๋ฉ์ธ์ ์ ๋ ๊ฒฝ๋ก๋ ์์ฒญ ์ปจํ ์คํธ์ ์์ฑ๋๋ค.
์ด ์์ฒญ ํ์์ HTTP method ๋ง๋ค ๋ค๋ฅด๋ค.
origin ํ์ | absolute ํ์ | authority ํ์ | asterisk ํ์ |
๏น'?'์ ์ฟผ๋ฆฌ ๋ฌธ์์ด์ด ๋ถ๋ ์ ๋๊ฒฝ๋ก ๏นGET, POST, HEAD, OPTIONS๋ฑ์ method์ ์ฌ์ฉ ๏นHEAD / test.html?query=alibaba HTTP/1.1 |
๏น์์ ํ URLํ์ ๏น๋๋ถ๋ถ GET method์ ์ฌ์ฉ ๏นGET http://developer.mozilla.org/en-US/docs/Web/HTTP/Messages HTTP/1.1 |
๏น๋๋ฉ์ธ ์ด๋ฆ๊ณผ ํฌํธ ๋ฒํธ๋ก ์ด๋ฃจ์ด์ง URL์ ์ผ๋ถ๋ถ ๏นCONNECT์ ์ฌ์ฉ ๊ฐ๋ฅ ๏นCONNECT developer.mozilla.org:80 HTTP/1.1 |
๏นOPTIONS์ ํจ๊ป * ํ๋๋ก ์๋ฒ ์ ์ฒด๋ฅผ ํํํ๋ค. ๏นOPTIONS * HTTP/1.1 |
3) HTTP ๋ฒ์ ์ ๋ฐ๋ผ HTTP message์ ๊ตฌ์กฐ๊ฐ ๋ฌ๋ผ์ง๋ฏ๋ก start line์ HTTP ๋ฒ์ ์ ํจ๊ป ์ ๋ ฅํ๋ค.
โ๏ธ Headers : ํค๋ ์ด๋ฆ(๋์๋ฌธ์ ๊ตฌ๋ถ ์๋ ๋ฌธ์์ด), ์ฝ๋ก , ๊ฐ ํ์
โฐ ํค๋์ ์ข ๋ฅ
General headers | Request headers | Representation headers |
๏น๋ฉ์์ง ์ ์ฒด์ ์ ์ฉ๋๋ ํค๋ ๏นbody๋ฅผ ํตํด ์ ์ก๋๋ ๋ฐ์ดํฐ์๋ ๊ด๋ จx |
๏นfetch๋ฅผ ํตํด ๊ฐ์ ธ์ฌ ๋ฆฌ์์ค๋ ํด๋ผ์ด์ธํธ ์์ฒด์ ๋ํ ์์ธํ ์ ๋ณด๋ฅผ ํฌํจํ๋ ํค๋ | ๏น์ด์ ์๋ Entity headers ๋ผ๊ณ ๋ถ๋ฆผ ๏นbody์ ๋ด๊ธด ๋ฆฌ์์ค์ ์ ๋ณด๋ฅผ ํฌํจํ๋ ํค๋ |
โ๏ธ Body : ์์ฒญ์ ๋ณธ๋ฌธ์ผ๋ก HTTP message ๊ตฌ์กฐ์ ๋ง์ง๋ง์ ์์นํ๋ค.
โฐ ๋ชจ๋ ์์ฒญ์ body๊ฐ ํ์ํ์ง๋ ์๋ค.
โฐ POST, PUT ๊ฐ์ ๊ฒฝ์ฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ์ดํธํ๊ธฐ ์ํด body๊ฐ ํ์ํ๋ค
โฐ body์ ์ข ๋ฅ
Single-resource bodies | Multiple-resource bodies |
๏นํค๋ ๋๊ฐ๋ก ์ ์๋ ๋จ์ผ ํ์ผ๋ก ๊ตฌ์ฑ๋๋ค. | ๏น ์ฌ๋ฌ ํํธ๋ก ๊ตฌ์ฑ๋ ๋ณธ๋ฌธ์์๋ ๊ฐ ํํธ๋ง๋ค ๋ค๋ฅธ ์ ๋ณด๋ฅผ ์ง๋๋ค. |
3๏ธโฃ HTTP Response
โ๏ธ Status line : ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ด๋ ๋ฉ์์ง
โฐ ํ์ฌ ํ๋กํ ์ฝ์ ๋ฒ์ , ์ํ ์ฝ๋(์์ฒญ์ ๊ฒฐ๊ณผ), ์ํ ํ ์คํธ(์ํ ์ฝ๋์ ๋ํ ์ค๋ช ) ์ ํฌํจํ๋ค.
โฐ ex) HTTP/1.1 404 Not Found
โ๏ธ Headers : ์์ฒญ ํค๋์ ๋์ผํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ค.
โฐ ํค๋์ ์ข ๋ฅ
General headers | Response headers | Representation headers |
๏น๋ฉ์์ง ์ ์ฒด์ ์ ์ฉ๋๋ ํค๋ ๏นbody๋ฅผ ํตํด ์ ์ก๋๋ ๋ฐ์ดํฐ์๋ ๊ด๋ จx |
๏น์์น ๋๋ ์๋ฒ ์์ฒด์ ๋ํ ์ ๋ณด์ ๊ฐ์ด ๋ถ๊ฐ์ ์ธ ์ ๋ณด๋ฅผ ๊ฐ๋ ํค๋ | ๏น์ด์ ์๋ Entity headers๋ผ๊ณ ๋ถ๋ฆผ ๏นbody์ ๋ด๊ธด ๋ฆฌ์์ค์ ์ ๋ณด๋ฅผ ํฌํจํ๋ ํค๋ |
โ๏ธ Body : ์๋ต์ ๋ณธ๋ฌธ์ผ๋ก HTTP message ๊ตฌ์กฐ์ ๋ง์ง๋ง์ ์์นํ๋ค.
โฐ ๋ชจ๋ ์๋ต์ body๊ฐ ํ์ํ์ง๋ ์๋ค.
โฐ 201, 204์ ๊ฐ์ ์ํ ์ฝ๋๋ฅผ ๊ฐ์ง๋ ์๋ต์๋ ํ์ํ์ง ์๋ค.
โฐ body์ ์ข ๋ฅ
Single-resource bodies | Multiple-resource bodies |
๏น๊ธธ์ด๊ฐ ์๋ ค์ง ๋จ์ผ-๋ฆฌ์์ค ๋ณธ๋ฌธ์ ๋๊ฐ์ ํค๋๋ก ์ ์ ๏น๊ธธ์ด๋ฅผ ๋ชจ๋ฅด๋ ๋จ์ผ ํ์ผ๋ก ๊ตฌ์ฑ๋ ๋จ์ผ-๋ฆฌ์์ค ๋ณธ๋ฌธ์ Transfer-Encoding์ด chunked๋ก ์ค์ ๋์ด ์์ผ๋ฉฐ, ํ์ผ์ chunked๋ก ๋๋์ด ์ธ์ฝ๋ฉ ๋์ด ์๋ค. |
๏น์๋ก ๋ค๋ฅธ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ body |
'CodeStates > learning contents' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
S2) Unit 7. [HTTP/๋คํธ์ํฌ] ๋ธ๋ผ์ฐ์ ์ ์๋ ์๋ฆฌ(๋ณด์ด๋ ๊ณณ) (0) | 2023.01.30 |
---|---|
S2) Unit 7. [HTTP/๋คํธ์ํฌ] ๋ธ๋ผ์ฐ์ ์ ์๋ ์๋ฆฌ(๋ณด์ด์ง ์๋ ๊ณณ) (0) | 2023.01.30 |
S2) Unit 6. [React] React State & Props (2) | 2023.01.26 |
S2) Unit 5. [React] React SPA (0) | 2023.01.25 |
S2) Unit 4. [React] ๊ธฐ์ด (0) | 2023.01.20 |