[WEB]HTTP

Jimin_Noteยท2022๋…„ 6์›” 8์ผ
0

[WEB]

๋ชฉ๋ก ๋ณด๊ธฐ
3/4

๐Ÿ“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

๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๊ธฐ

GET /shop/bag HTTP 1.1

์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด์€ ์ œํ’ˆ์„ ์กฐํšŒํ•œ๋‹ค

  • POST

๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑ/์ˆ˜์ •

๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์š”์ฒญ์— body๊ฐ€ ํฌํ•จ๋˜์„œ ๋ณด๋‚ด์ง‘๋‹ˆ๋‹ค

POST /shop/bag HTTP 1.1

์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋ฌผ๊ฑด๋‹ด๊ธฐ

  • DELETE

๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์—์„œ ์‚ญ์ œ

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
profile
Hello. I'm jimin:)

0๊ฐœ์˜ ๋Œ“๊ธ€