TIL33 - HTTP

μ˜€μ§€μˆ˜Β·2021λ…„ 6μ›” 17일
0

TIL

λͺ©λ‘ 보기
17/26
post-thumbnail

πŸ… Today's Goal

  1. Statelessκ°€ 무엇인지 μ•Œμ•„λ³΄μž.
  2. Request, Response의 ꡬ쑰에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μž.
  3. HTTP request Method의 μ’…λ₯˜μ™€ Methodλ“€μ˜ 차이점에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μž.
  4. λŒ€ν‘œμ μΈ Status code의 μ’…λ₯˜λ₯Ό μ•Œμ•„λ³΄μž.

듀어가기에 μ•žμ„œ..

HTTPλž€?

  • HyperText Transfer Protocol의 μ•½μž
    • HyperText

      링크둜 μ–΄λ–»κ²Œ μ—°κ²°λ˜λ„λ‘ ν•  것인가? 즉, HTML둜 λ§Œλ“  μ›Ή νŽ˜μ΄μ§€λ₯Ό μ–΄λ–»κ²Œ μ£Όκ³  받을 것인가?
    • Transfer

      'μ „μ†‘ν•˜λ‹€'. μ›Ή νŽ˜μ΄μ§€λ₯Ό λ§Œλ“€μ–΄λ„ 이 νŽ˜μ΄μ§€λ₯Ό λ‹€λ₯Έ μ‚¬λžŒμ—κ²Œ 보여주지 μ•Šκ³  λ‚˜ 혼자만 λ³Έλ‹€λ©΄ μ˜λ―Έκ°€ 없을 것이닀. λ”°λΌμ„œ μš°λ¦¬κ°€ λ§Œλ“  μ›Ή μ‚¬μ΄νŠΈλ₯Ό 널리 μ•Œλ¦¬κ³  λ‹€λ₯Έ μ‚¬λžŒλ“€κ³Ό κ³΅μœ ν•˜κΈ° μœ„ν•΄μ„œ λ‹€λ₯Έ μ»΄ν“¨ν„°μ—κ²Œ 전솑해야 ν•  ν•„μš”κ°€ μžˆλ‹€.
    • Protocol

      톡신 κ·œμ•½. 물리적으둜 떨어진 컴퓨터끼리 μ–΄λ–»κ²Œ 정보λ₯Ό μ£Όκ³  받을 것인지에 λŒ€ν•œ 약속이닀. 즉, 컴퓨터끼리 μ†Œν†΅ν•  λ•Œμ˜ μ†Œν†΅ 방법을 μ˜λ―Έν•œλ‹€.

HTTPλž€ 컴퓨터듀끼리 HTML νŒŒμΌμ„ 주고받을 수 μžˆλ„λ‘ ν•˜λŠ” μ†Œν†΅ 방식 λ˜λŠ” 약속이닀.


HTTP의 νŠΉμ§•

1. Request / Response

RequestλŠ” μš”μ²­! ResponseλŠ” 응닡!

  • λ³΄λ‚΄λŠ” 주체와 λ°›λŠ” 주체가 μžˆλ‹€.
  • λ³΄λ‚΄λŠ” μ£Όμ²΄λŠ” λ°›λŠ” μ£Όμ²΄μ—κ²Œ μš”μ²­(Request)λ₯Ό 보내고 λ°›λŠ” μ£Όμ²΄λŠ” 이에 λŒ€ν•œ 응닡(Response)λ₯Ό 보낸닀.

2. ⭐️ Stateless

State[μƒνƒœ] + less[μ—†μŒ]

  • 각각의 HTTP 톡신(μš”μ²­/응닡)은 독립적이닀. => 과거의 톡신에 λŒ€ν•œ λ‚΄μš©μ„ μ „~ν˜€ μ•Œμ§€ λͺ» ν•œλ‹€.
  • 맀 ν†΅μ‹ λ§ˆλ‹€ ν•„μš”ν•œ λͺ¨λ“  정보λ₯Ό λ‹΄μ•„μ„œ μš”μ²­μ„ λ³΄λ‚΄μ•Όν•œλ‹€λŠ” λœ»μ΄λ‹€.
  • λ§Œμ•½ μ—¬λŸ¬ 번의 톡신 진행 κ³Όμ •μ—μ„œ μ—°μ†λœ 데이터 μ²˜λ¦¬κ°€ ν•„μš”ν•œ 경우 ν•„μš”ν•œ 것이 λ°”λ‘œ 둜그인 토큰이닀.

Request / Response

  • μš”μ²­μ„ 잘 ν•΄μ•Ό 응닡이 잘 μ˜¨λ‹€ ⭐️
  • μ‹€μ œ ν”„λ‘œμ νŠΈλ₯Ό 진행할 λ•Œ, ν”„λ‘ νŠΈμ—”λ“œμ—μ„œ λ°±μ—”λ“œμ—κ²Œ 데이터λ₯Ό μš”μ²­ν•˜κ³  λ°±μ—”λ“œλŠ” μš”μ²­μ„ μ²˜λ¦¬ν•΄μ„œ 응닡을 μ€€λ‹€.

Request / Response ꡬ쑰


HTTP Request Methods

πŸ”₯ ν•΄λ‹Ή λ©”μ†Œλ“œλ“€μ€ ν”„λ‘ νŠΈμ—”λ“œμ˜ μž…μž₯μ—μ„œ μš”μ²­μ˜ μ˜λ„κ°€ λ‹΄κΈ΄ 것이닀!
λ°±μ—”λ“œμ˜ μž…μž₯μ—μ„œ μƒκ°ν•˜λ©΄ ν˜Όλž€μ΄ 올 수 μžˆμœΌλ‹ˆ 주의!

1. GET

  • μ–΄λ–€ 데이터λ₯Ό μ„œλ²„λ‘œλΆ€ν„° GET, λ°›μ•„μ˜¬ λ•Œ 주둜 μ‚¬μš©ν•˜λŠ” λ©”μ†Œλ“œ
  • 데이터λ₯Ό λ°›μ•„μ˜€κΈ°λ§Œ ν•  λ•Œ μ‚¬μš©
  • κ°€μž₯ κ°„λ‹¨ν•˜κ³  많이 μ‚¬μš©λ˜λŠ” HTTP λ©”μ†Œλ“œ
    • 사싀 μš°λ¦¬κ°€ μ›ΉνŽ˜μ΄μ§€λ₯Ό λ„μšΈ λ•Œ ν•„μš”ν•œ 정보듀을 λͺ¨λ‘ GET λ©”μ†Œλ“œλ‘œ μš”μ²­μ„ λ³΄λ‚΄μ„œ λ°›μ•„μ˜¨ 응닡을 화면에 λ„μš°λŠ” 것

πŸ”Ž μž₯λ°”κ΅¬λ‹ˆμ— 담은 μ œν’ˆμ„ μ‘°νšŒν•œλ‹€.

2. POST

  • 데이터λ₯Ό 생성/μˆ˜μ •ν•  λ•Œ 주둜 μ‚¬μš©λ˜λŠ” λ©”μ†Œλ“œ
  • 데이터λ₯Ό 생성 및 μˆ˜μ •ν•  λ•Œ 많이 μ‚¬μš©λ˜κΈ° λ•Œλ¬Έμ— λŒ€λΆ€λΆ„μ˜ 경우 μš”μ²­μ— bodyκ°€ ν¬ν•¨λ˜μ„œ 보내진닀.

🧺 μž₯λ°”κ΅¬λ‹ˆμ— λ§˜μ— λ“œλŠ” μƒν’ˆμ„ λ‹΄λŠ”λ‹€.

3. DELETE

  • νŠΉμ • 데이터λ₯Ό μ„œλ²„μ—μ„œ μ‚­μ œν•΄λ‹¬λΌλŠ” μš”μ²­μ„ 보낼 λ•Œ μ“°λŠ” λ©”μ†Œλ“œ

❌ μž₯λ°”κ΅¬λ‹ˆμ—μ„œ μ œν’ˆμ„ μ‚­μ œν•œλ‹€.


Response Status Codes

μ‹€μ œ ν”„λ‘œμ νŠΈλ₯Ό 진행할 λ•Œ κ°€μž₯ 많이 보게 될 μ‘λ‹΅μ˜ μƒνƒœ μ½”λ“œλ“€μ΄λ‹€.

1. 200: OK

  • κ°€μž₯ 자주 보게 될 κ²ƒμž„
  • λ¬Έμ œμ—†μ΄ μš”μ²­μ— λŒ€ν•œ μ²˜λ¦¬κ°€ λ°±μ—”λ“œ μ„œλ²„μ—μ„œ 이루어지고 λ‚˜μ„œ μ˜€λŠ” μ‘λ‹΅μ½”λ“œ

2. 201: Created

  • 무엇인가가 잘 μƒμ„±λ˜μ—ˆμ„ λ•Œ μ˜€λŠ” μ‘λ‹΅μ½”λ“œ
  • λŒ€κ²Œ POST λ©”μ†Œλ“œμ˜ μš”μ²­μ— 따라 λ°±μ—”λ“œ μ„œλ²„μ— 데이터가 잘 생성 λ˜λŠ” μˆ˜μ • λ˜μ—ˆμ„ λ•Œμ— λ³΄λ‚΄λŠ” μ½”λ“œ

3. 400: Bad Request

  • ν•΄λ‹Ή μš”μ²­μ΄ 잘λͺ»λ˜μ—ˆμ„ λ•Œ λ³΄λ‚΄λŠ” Status Code
  • 주둜 μš”μ²­μ˜ Body에 λ³΄λ‚΄λŠ” λ‚΄μš©μ΄ 잘λͺ»λ˜μ—ˆμ„ λ•Œ μ‚¬μš©λ˜λŠ” μ½”λ“œ
    ex) μ „ν™”λ²ˆν˜Έλ₯Ό 보내야 ν•˜λŠ”λ° μˆ«μžκ°€ μ•„λ‹Œ λ¬Έμžμ—΄μ˜ μ£Όμ†Œκ°€ λŒ€μ‹  Body에 담겼을 경우

4. 401: Unauthorized

  • μœ μ €κ°€ ν•΄λ‹Ή μš”μ²­μ„ μ§„ν–‰ν•˜λ €λ©΄ λ¨Όμ € λ‘œκ·ΈμΈμ„ ν•˜κ±°λ‚˜ νšŒμ›κ°€μž…μ΄ ν•„μš”ν•˜λ‹€λŠ” 의미
    ex) wish list, μ’‹μ•„μš” κΈ°λŠ₯은 νšŒμ›μ΄ μ•„λ‹ˆλ©΄ μš”μ²­μ„ 보낼 수 μ—†μŒ

5. 403: Forbidden

  • μœ μ €κ°€ ν•΄λ‹Ή μš”μ²­μ— λŒ€ν•œ κΆŒν•œμ΄ μ—†λ‹€λŠ” 뜻
  • μ ‘κ·Ό λΆˆκ°€λŠ₯ν•œ 정보에 μ ‘κ·Όν–ˆμ„ 경우
    ex) 였직 μœ λ£ŒνšŒμ›λ§Œ μ ‘κ·Όν•  수 μžˆλŠ” 데이터λ₯Ό μš”μ²­ ν–ˆμ„ λ•Œ

6. 404: Not Found

  • μš”μ²­λœ URI κ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” 의미

500: Internal Server Error

  • μ„œλ²„μ—μ„œ μ—λŸ¬κ°€ 났을 λ•Œμ˜ Status Code
  • API κ°œλ°œμ„ ν•˜λŠ” λ°±μ—”λ“œ κ°œλ°œμžλ“€μ΄ μ‹«μ–΄ν•˜λŠ” μ½”λ“œ

wecodeμ—μ„œ μ œκ³΅ν•œ 자료 μ°Έκ³ 

profile
My Moto:: λ‚΄ μŠ€μŠ€λ‘œμ™€ λ”λΆˆμ–΄ μ£Όλ³€μ—κ²Œλ„ 쒋은 영ν–₯을 ν–‰μ‚¬ν•˜λ„λ‘ 점검 & λ…Έλ ₯..!!

0개의 λŒ“κΈ€