๐Ÿ’ก HTTP - Request & Response

Hi! I'm JENNIEยท2022๋…„ 6์›” 30์ผ
0

TIL : ๊ธฐ๋ก

๋ชฉ๋ก ๋ณด๊ธฐ
6/16
post-thumbnail

1. HTTP ๋ž€?

HTTP : Hyper Text Transfer Protocol

ํ•˜์ดํผ ํ…์ŠคํŠธ= html๋กœ ๋งŒ๋“  ์›น ํŽ˜์ด์ง€๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ทœ์น™
โ†’ Client โ†”ย Server ๊ฐ„์˜ ํ†ต์‹ ์— ํ•„์š”ํ•œ ๊ทœ์น™์„ ์ •ํ•œ ๊ฒƒ.

2. HTTP์˜ 2๊ฐ€์ง€ ํŠน์ง•

1) Request / Response (์š”์ฒญ / ์‘๋‹ต)

1์š”์ฒญ 1์‘๋‹ต์ด ๊ธฐ๋ณธ

2) Stateless (์ƒํƒœ ์—†์Œ)

State : ๊ธฐ์–ต๋ ฅ, ๋ฉ”๋ชจ๋ฆฌ
HTTP ํ†ต์‹ ์€ ๊ฐ๊ฐ ๋…๋ฆฝ โ†’ ๊ณผ๊ฑฐ์˜ ํ†ต์‹  ๊ฒฐ๊ณผ๋ฅผ ๋ณด์กดํ•˜๊ฑฐ๋‚˜ ๊ธฐ์–ตํ•˜์ง€ ์•Š์Œ.

  • Stateful
    : ์ค‘๊ฐ„ ์ƒํƒœ ์ €์žฅ. ํ†ต์‹ ์„ ํ•˜๋ฉฐ ์ •๋ณด๋ฅผ ๊ณ„์† ์ €์žฅํ•ด ์ค‘์ฒฉ๋˜๋ฏ€๋กœ 1๋ฒˆ ํ†ต์‹ ์— 1๊ฐ€์ง€ ์š”์ฒญ๋งŒ ๋ณด๋‚ด๋ฉด ๋œ๋‹ค. but, ๋ฌด๊ฑฐ์›€!
    โ†•๏ธ
  • Stateless
    : ๋งค ํ†ต์‹ ๋งˆ๋‹ค ํ•œ๊บผ๋ฒˆ์— ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๋‹ด์•„์„œ ์š”์ฒญ์„ ๋ณด๋‚ด์•ผ ํ•œ๋‹ค.

3. Request-Response ๋ฉ”์„ธ์ง€ ๊ตฌ์กฐ

1) Request ๊ตฌ์กฐ

Start Line

: ์š”์ฒญ์˜ ์ฒซ ์ค„
์š”์ฒญ์ „์†ก๋ฐฉ์‹ / ๋ชฉํ‘œ url / version

Headers

: ์š”์ฒญ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ
{ key : value }

Body

: ์š”์ฒญ์˜ ์‹ค์ œ ๋‚ด์šฉ

2) Response ๊ตฌ์กฐ

Status Line

: ์‘๋‹ต์˜ ์ฒซ ์ค„ - ์ƒํƒœ
version / ์‘๋‹ต ์ƒํƒœ ์ฝ”๋“œ / ์ƒํƒœ ์„ค๋ช… ํ…์ŠคํŠธ
โ†’ ex) HTTP / 1.1 / 404 Not Found

Headers

: ์‘๋‹ต์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ
{ key : value } โœ”๏ธToken

Body

: ์‘๋‹ต ๋‚ด์šฉ - ๋ฐ์ดํ„ฐ

4. HTTP Request Methods

GET

: ์›นํŽ˜์ด์ง€์— ์ ‘์†ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๊ธฐ๋งŒ ํ•  ๋•Œ ์‚ฌ์šฉ

์žฅ๋ฐ”๊ตฌ๋‹ˆ ์ƒํ’ˆ ์กฐํšŒ //๊ทธ์ € ๋ณด๊ธฐ๋งŒ ํ•˜๊ธฐ

url์— / ๋’ท๋ถ€๋ถ„์— ๋‹ด๊ธด๋‹ค

  • ์†๋„ ๋น ๋ฆ„
  • url์— ์ •๋ณด๊ฐ€ ๊ณต๊ฐœ์ ์œผ๋กœ ๋…ธ์ถœ๋˜์–ด ๋ณด์•ˆ์— ์ทจ์•ฝํ•จ
  • ๊ธธ์ด ์ œํ•œ์ด ์žˆ์Œ

POST

: ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑ / ์ˆ˜์ • ํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ

Body์— ๋‹ด๋Š” ๋‚ด์šฉ์ด ํ•ต์‹ฌ - ์–ด๋–ค ์ •๋ณด๋ฅผ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ์ง€ ์ ์–ด ๋ณด๋ƒ„
์‚ฌ์‹ค์ƒ ์ƒ์„ฑ, ์ˆ˜์ •, ์‚ญ์ œ ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜๋‹ค
โญ๏ธ but, ์›ํ™œํ•œ ์†Œํ†ต(ํ†ต์‹ )์„ ์œ„ํ•ด ์ƒํ™ฉ์— ๋งž๋Š” method๋ฅผ ์จ์•ผํ•จ.

๋ง˜์— ๋“œ๋Š” ์ƒํ’ˆ pick! -> ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด๊ธฐ
  • ์†๋„๋Š” get์— ๋น„ํ•ด ๋Š๋ฆผ
  • body์— ์ •๋ณด๊ฐ€ ๋“ค์–ด๊ฐ€๋ฏ€๋กœ ๋ณด์•ˆ์— ์ข‹๋‹ค
  • ๊ธธ์ด ์ œํ•œ๋„ ์—†์Œ

DELETE

: ์„œ๋ฒ„์— ์ €์žฅ๋œ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•  ๋•Œ ์‚ฌ์šฉ

์žฅ๋ฐ”๊ตฌ๋‹ˆ์—์„œ ์‚ญ์ œ

5. Response Status code

1) Success

  • 200: OK
  • 201: Created ๋ฐ์ดํ„ฐ ์ƒ์„ฑ or ์ˆ˜์ •
  • 204: No content ์ฃผ๋กœ delete ์‘๋‹ต์œผ๋กœ ์‚ฌ์šฉ. ๋‚ด์šฉ ์ ์„ ๊ฒƒ์ด ๋”ฑํžˆ ์—†์Œ.

2) Client Error ์š”์ฒญ์ด ์ž˜๋ชป๋จ

  • 400: Bad Request โ†’๊ทธ๊ฒŒ๋ญฅ...? ๋ญ”๊ฐ€ ์ž˜๋ชป๋ณด๋ƒ„
  • 401: Unauthorized ์ธ์ฆํ•„์š”(๋กœ๊ทธ์ธ or ํšŒ์›๊ฐ€์ž…)
  • 403: Forbidden ์ ‘๊ทผ ๋ถˆ๊ฐ€. ์ด์šฉ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ œํ•œ์ด ์žˆ๋‹ค. โ†’์žˆ๋Š”๋ฐ ๋„Œ ๊ถŒํ•œ์ด ์—†์–ด
  • 404: Not Found ํ•ด๋‹น ๋ฐ์ดํ„ฐ ์กด์žฌํ•˜์ง€ ์•Š์Œ โ†’๊ทธ๋Ÿฐ๊ฑฐ ์—†์–ด

3) Server Error ์‘๋‹ต๋ฌธ์ œ

  • 500: Internal Server Error ์˜ˆ์ƒ์™ธ์˜ ์—๋Ÿฌ

HTTP๋Š” ๊ฐ„๋‹จํžˆ ์—ฌ๊ธฐ๊นŒ์ง€๋งŒ.....ใ…Ž__ใ…Ž

profile
Front-End Developer

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