๐HTTP : HyperText Transfer Protocol
๐ย ์ด๋ป๊ฒ ์ํต์ ํ ๊ฒ์ธ๊ฐ!์ปดํจํฐ ๋ผ๋ฆฌ์ ์ํต์ ์ํ ํต์ ๊ท์ฝ
- HyperText ๋ฌธ์์ ๋ฌธ์๊ฐ ๋งํฌ๋ก ์ฐ๊ฒฐ๋์ด ์์
- Transfer ์ฐ๋ฆฌ๊ฐ ๋ง๋ ์น์ฌ์ดํธ๋ฅผ ๋๋ฆฌ ์๋ฆฌ๊ณ ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ๊ณต์ ํ๊ธฐ ์ํด์ ๋ค๋ฅธ ์ปดํจํฐ์๊ฒย ์ ์ก
- Protocol ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋จ์ด์ง ์ปดํจํฐ ๋ผ๋ฆฌ ์ด๋ป๊ฒ HTMLํ์ผ(HyperText)์ ์ฃผ๊ณ ๋ฐ์์ง์ ๋ํย ์ฝ์

1์์ฒญ 1์๋ต
Stateless
HTTP๊ฐ๋ณํต์ ์ ๋ชจ๋ ๋
๋ฆฝ์ด์ด์, ๊ณผ๊ฑฐ์ HTTP ํต์ ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์กดํ์ง ์์
์๋ฅผ ๋ค์ด ์นดํ์์ ์ฃผ๋ฌธ์ ํ๋ค๊ณ ํ๋ฉด

๋ณดํต ์ด๋ ๊ฒ ์งํ๋์ง๋ง Stateless ์ฆ ์ํ๊ฐ ์๋ ์ํฉ์

์ํ๊ฐ ์ ์ฅ๋์ง ์์ ์ด๋ฌํ ์ํฉ์ด ๋๋ค
์ฆ, ๋งค ํต์ ๋ง๋ค ์ฌ์ ์ ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ด์์ ์์ฒญ์๋ณด๋ด์ผ ํ๋ค

Request ๋ฉ์์ง ๊ตฌ์กฐ
- Start Line ์์ฒญ์ ์ฒซ๋ฒ์งธ์ค / ์ ๋ชฉ์ญํ
HTTP method
์ด๋ค ํ๋์ ํ๊ฒ ๋ค!
์์ฒญ์ด ์๋ํ ์ก์
์ ์ ์
Requset target
์ ํ,์ฟ ํก ๋ฑ
์์ฒญ์ด ์ ์ก๋๋ ๋ชฉํ url
HTTP version
HTTP version
- Headers ์์ฒญ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ด๊ณ ์๋ ๋ถ๋ถ
Body ์์ฒญ์ ์ค์ ๋ด์ฉ

Request ๋ฉ์์ง๊ตฌ์กฐ
Response ๋ฉ์์ง ๊ตฌ์กฐ
Status Line ์๋ต ์ฒซ๋ฒ์งธ ์ค - ์ํ๋ฅผ ๋ํ๋
HTTP version HTTP ๋ฒ์
Status Code ์๋ต ์ํ ์ฝ๋
Status Text ์๋ต์ ์ํ๋ฅผ ๊ฐ๋ตํ ์ค๋ช
ํ๋ ํ
์คํธ
Headers ์๋ต์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ด๊ณ ์๋ ๋ถ๋ถ
Body ์๋ตํด์ค๋ฐ์ดํฐ (์์ฒญ๋ฉ์๋์ ๋ฐ๋ผ ์กด์ฌํ์ง ์์ ์ ์์)
request method
๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๊ธฐ
GET /shop/bag HTTP 1.1
์ฅ๋ฐ๊ตฌ๋์ ๋ด์ ์ ํ์ ์กฐํํ๋ค
๋ฐ์ดํฐ๋ฅผ ์์ฑ/์์
๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์์ฒญ์ body๊ฐ ํฌํจ๋์ ๋ณด๋ด์ง๋๋ค
POST /shop/bag HTTP 1.1
์ฅ๋ฐ๊ตฌ๋์ ๋ฌผ๊ฑด๋ด๊ธฐ
๋ฐ์ดํฐ๋ฅผ ์๋ฒ์์ ์ญ์
DELETE /shop/bag HTTP 1.1
์ฅ๋ฐ๊ตฌ๋ ๋ฌผ๊ฑด ์ญ์
๐Status Code

1. Success
200 OK
- ๊ฐ์ฅ ์์ฃผ ๋ณด๊ฒ๋ ์๋ ์๋?ใ
ใ
Status Code
- ๋ฌธ์ ์์ด ์์ฒญ์ ๋ํ ์ฒ๋ฆฌ๊ฐ ๋ฐฑ์๋ ์๋ฒ์์ ์ด๋ฃจ์ด์ง๊ณ ๋์ ์ค๋ ์๋ต์ฝ๋
201 Created
- ๋ฌด์ธ๊ฐ๊ฐ ์ ์์ฑ๋์์ ๋์ ์ค๋ Status Code
- ๋๊ฒ POST ๋ฉ์๋์ ์์ฒญ์ ๋ฐ๋ผ ๋ฐฑ์๋ ์๋ฒ์ ๋ฐ์ดํฐ๊ฐ ์ ์์ฑ ๋๋ ์์ ๋์์ ๋์ ๋ณด๋ด๋ ์ฝ๋์
๋๋ค.
204 No Content
- ์์ฒญ์ด ์ฑ๊ณตํ์ผ๋ฉฐ ์ ๊ณตํ ์๋ต๋ฉ์ธ์ง๊ฐ ์์ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ Status Code
- ์ฃผ๋ก DELETE ๋ฉ์๋์ ์์ฒญ์ผ๋ก ์ฑ๊ณต์ ์ผ๋ก ์ญ์ ๋์ด์ ์๋ต์ผ๋ก ์ ๊ณตํ ์ปจํ
์ธ ๊ฐ ์์ ๋ ์ฌ์ฉ๋๋ค.
2. Client Error
400 Bad Request
- ํด๋น ์์ฒญ์ด ์๋ชป๋์์ ๋ ๋ณด๋ด๋ Status Code
- ์ฃผ๋ก ์์ฒญ์ Body์ ๋ณด๋ด๋ ๋ด์ฉ์ด ์๋ชป๋์์ ๋ ์ฌ์ฉ๋๋ ์ฝ๋์
๋๋ค.
ex) ์ ํ๋ฒํธ๋ฅผ ๋ณด๋ด์ผ ํ๋๋ฐ ์ซ์๊ฐ ์๋ ๋ฌธ์์ด์ ์ฃผ์๊ฐ ๋์ Body์ ๋ด๊ฒผ์ ๊ฒฝ์ฐ
401 Unauthorized
- ์ ์ ๊ฐ ํด๋น ์์ฒญ์ ์งํํ๋ ค๋ฉด ๋จผ์ ๋ก๊ทธ์ธ์ ํ๊ฑฐ๋ ํ์๊ฐ์
์ด ํ์ํ๋ค๋ ์๋ฏธ๋ฅผ ๋ํ๋ด๋ Status Code
ex) wish list, ์ข์์ ๊ธฐ๋ฅ์ ํ์์ด ์๋๋ฉด ์์ฒญ์ ๋ณด๋ผ ์ ์์ต๋๋ค. / ์ ๋ฃํ์์ด ์๋๋๋ผ๋ ๊ฐ๋ฅ
403 Forbidden
- ์ ์ ๊ฐ ํด๋น ์์ฒญ์ ๋ํ ๊ถํ์ด ์๋ค๋ ์๋ฏธ๋ฅผ ๋ํ๋ด๋ Status Code
- ์ ๊ทผ ๋ถ๊ฐ๋ฅํ ์ ๋ณด์ ์ ๊ทผํ์ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธํฉ๋๋ค.
ex) ONLY ์ ๋ฃํ์๋ง ์ ๊ทผํ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์์ฒญ ํ์ ๋
404 Not Found
- ์์ฒญ๋ URI ๊ฐ ์กด์ฌํ์ง ์๋๋ค๋ ์๋ฏธ๋ฅผ ๋ํ๋ด๋ Status Code
3. Server Error
500 Internal Server Error
- ์๋ฒ์์ ์๋ฌ๊ฐ ๋ฌ์ ๋์ Status Code