# HTTP μƒνƒœμ½”λ“œ / 1~5XX
Study Repository

HTTP μƒνƒœμ½”λ“œ / 1~5XX

by rlaehddnd0422

μƒνƒœμ½”λ“œ 

ν΄λΌμ΄μ–ΈνŠΈκ°€ 보낸 μš”μ²­μ˜ 처리 μƒνƒœλ₯Ό μ‘λ‹΅μ—μ„œ μ•Œλ €μ£ΌλŠ” κΈ°λŠ₯

 

  • 1xx (Informational) : μš”μ²­μ΄ μˆ˜μ‹ λ˜μ–΄ μ²˜λ¦¬μ€‘
  • 2xx (Successful) : μš”μ²­ 정상 처리
  • 3xx (Redirection) : μš”μ²­μ„ μ™„λ£Œν•˜λ €λ©΄ μΆ”κ°€ 행동 ν•„μš”
  • 4xx (Client Error) : ν΄λΌμ΄μ–ΈνŠΈ 였λ₯˜ -> 잘λͺ»λœ λ¬Έλ²•λ“±μœΌλ‘œ μ„œλ²„κ°€ μš”μ²­μ„ μˆ˜ν–‰ν•  수 없을 λ•Œ
  • 5xx (Server Error) : μ„œλ²„ 였λ₯˜, μ„œλ²„κ°€ 정상 μš”μ²­μ„ μ²˜λ¦¬ν•˜μ§€ λͺ»ν•œ 경우

λ§Œμ•½ λͺ¨λ₯΄λŠ” μƒνƒœμ½”λ“œκ°€ λ‚˜νƒ€λ‚˜λ©΄ ν΄λΌμ΄μ–ΈνŠΈλŠ” μƒμœ„ μƒνƒœμ½”λ“œλ‘œ ν•΄μ„ν•΄μ„œ μ²˜λ¦¬ν•©λ‹ˆλ‹€.

 

ex ) 299 445 -> 2xx

       532 330 -> 5xx  λ“±λ“±.. 

제일 μ•žμ˜ 번호둜 ν•΄μ„ν•΄μ„œ μ²˜λ¦¬ν•©λ‹ˆλ‹€.


1xx (Informational) - μš”μ²­μ΄ μˆ˜μ‹ λ˜μ–΄ μ²˜λ¦¬μ€‘μΌ λ•Œ

> 거의 μ‚¬μš©ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ μƒλž΅ν•©λ‹ˆλ‹€


2xx (Successful)

ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ μ„±κ³΅μ μœΌλ‘œ 처리

 

  • 200 OK

μ„œλ²„μ—μ„œ μ‘λ‹΅λ©”μ‹œμ§€λ‘œ μš”μ²­ μ„±κ³΅μ‹œ 200 리턴

 

  • 201 Created

μš”μ²­ μ„±κ³΅ν•΄μ„œ μƒˆλ‘œμš΄ λ¦¬μ†ŒμŠ€κ°€ μƒμ„±λ˜μ—ˆμ„ λ•Œ 201 리턴

 

  • 202 Accepted

μš”μ²­μ΄ μ ‘μˆ˜λ˜μ—ˆμœΌλ‚˜ μ²˜λ¦¬κ°€ μ™„λ£Œλ˜μ§€ μ•Šμ•˜μ„ 경우.

보톡 배치 처리 같은 κ³³μ—μ„œ μ‚¬μš©

ex) μš”μ²­ μ ‘μˆ˜ ν›„ 1μ‹œκ°„ 뒀에 배치 ν”„λ‘œμ„ΈμŠ€κ°€ μš”μ²­μ„ 처리

 

  • 204 No Content

μ„œλ²„κ°€ μš”μ²­μ„ μ„±κ³΅μ μœΌλ‘œ μˆ˜ν–‰ν–ˆμ§€λ§Œ, 응닡 νŽ˜μ΄λ‘œλ“œ 본문에 보낼 데이터가 없을 λ•Œ

ex) save κΈ°λŠ₯ 

save λ²„νŠΌμ˜ 결과둜 아무 λ‚΄μš©μ΄ 없어도 λœλ‹€. 

save λ²„νŠΌμ„ λˆŒλŸ¬λ„ 같은 화면을 μœ μ§€ν•΄μ•Ό ν•œλ‹€.

 


3xx (Redirection) - λ¦¬λ‹€μ΄λ ‰μ…˜

μš”μ²­μ„ μ™„λ£Œν•˜κΈ° μœ„ν•΄ μœ μ € μ—μ΄μ „νŠΈ(μ›Ή λΈŒλΌμš°μ €)의 μΆ”κ°€ 쑰치 ν•„μš”

λ¦¬λ‹€μ΄λ ‰μ…˜μ΄λž€?

μ›Ή λΈŒλΌμš°μ €λŠ” 3xx μ‘λ‹΅μ˜ 결과에 Location 헀더가 있으면, Location μœ„μΉ˜λ‘œ μžλ™ 이동

 

예λ₯Ό λ“€μ–΄μ„œ μ„œλ²„μ—μ„œ /event λŠ” /new-event둜 λ³€κ²½λ˜μ—ˆλ‹€κ³  ν•  λ•Œ,  ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ URL : /event 을 μ„œλ²„μ— μš”μ²­ν–ˆλ‹€κ³  ν•΄λ΄…μ‹œλ‹€.

그럼 μ„œλ²„λŠ” ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ 응닡 λ©”μ‹œμ§€λ‘œ /new-eventλ₯Ό λ³΄λ‚΄κ²Œ 되고, 이 λ©”μ‹œμ§€λ₯Ό 응닡받은 ν΄λΌμ΄μ–ΈνŠΈλŠ” /new-event둜 μžλ™μœΌλ‘œ URL을 λ³€κ²½ν•΄μ„œ λ‹€μ‹œ μ„œλ²„μ— μš”μ²­ν•˜κ²Œ λ©λ‹ˆλ‹€.

 

λ¦¬λ‹€μ΄λ ‰μ…˜μ—λŠ” μ—¬λŸ¬ μ’…λ₯˜κ°€ μžˆμŠ΅λ‹ˆλ‹€.

 

μœ„μ™€ 같은 κ²½μš°λŠ” '영ꡬ λ¦¬λ‹€μ΄λ ‰μ…˜'이라고 ν•΄μ„œ νŠΉμ • λ¦¬μ†ŒμŠ€μ˜ URIκ°€ 영ꡬ적으둜 μ΄λ™ν•˜λŠ” λ¦¬λ‹€μ΄λ ‰μ…˜μ΄ 있고,

κ·Έ 외에도 'μΌμ‹œ λ¦¬λ‹€μ΄λ ‰μ…˜', '특수 λ¦¬λ‹€μ΄λ ‰μ…˜'이 μžˆμŠ΅λ‹ˆλ‹€.


영ꡬ λ¦¬λ‹€μ΄λ ‰μ…˜ - 301, 308

λ¦¬μ†ŒμŠ€μ˜ URIκ°€ 영ꡬ적으둜 이동할 λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

 

301 Moved Permanently

 

> λ¦¬λ‹€μ΄λ ‰νŠΈμ‹œ μš”μ²­ λ©”μ†Œλ“œκ°€ GET으둜 λ³€ν•  μˆ˜λ„ 있고, λ³Έλ¬Έ(body)이 제거될 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. ( 처음 POST둜 보내도 λ¦¬λ‹€μ΄λ ‰νŠΈν•˜λ©΄ GET으둜 λ³€κ²½)

> 뢈λͺ…ν™•

 

308 Permanent Redirect

> 301κ³Ό κΈ°λŠ₯은 κ°™μ§€λ§Œ, λ¦¬λ‹€μ΄λ ‰νŠΈ μ‹œ μš”μ²­ λ©”μ†Œλ“œμ™€ 본문을 μœ μ§€ν•©λ‹ˆλ‹€ ( 처음 POST둜 보내면 λ¦¬λ‹€μ΄λ ‰νŠΈλ„ POST둜 μœ μ§€ )

 


μΌμ‹œ λ¦¬λ‹€μ΄λ ‰μ…˜ - 302, 307, 303

νŠΉμ • λ¦¬μ†ŒμŠ€μ˜ URIλ₯Ό μΌμ‹œμ μœΌλ‘œ λ³€κ²½ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

λ”°λΌμ„œ 검색 엔진 λ“±μ—μ„œ URL을 λ³€κ²½ν•˜λ©΄ μ•ˆλ©λ‹ˆλ‹€.

 

302 Found 

> λ¦¬λ‹€μ΄λ ‰νŠΈ μš”μ²­ μ‹œ λ©”μ†Œλ“œκ°€ GET으둜 변경될 μˆ˜λ„ 있고, 본문이 제거될 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. ( 301κ³Ό λ˜‘κ°™μŠ΅λ‹ˆλ‹€ )

> 뢈λͺ…ν™•

307 Temporary Redirect

> 302와 κΈ°λŠ₯은 κ°™μ§€λ§Œ, λ¦¬λ‹€μ΄λ ‰νŠΈ μ‹œμ— μš”μ²­ λ©”μ†Œλ“œμ™€ 본문은 μœ μ§€ν•©λ‹ˆλ‹€ ( POST둜 보내도 POST둜 λ¦¬λ‹€μ΄λ ‰νŠΈ ν•©λ‹ˆλ‹€ )

> λͺ…ν™•

 

303 See Other

> 302와 κΈ°λŠ₯은 κ°™μ§€λ§Œ, λ¦¬λ‹€μ΄λ ‰νŠΈμ‹œ μš”μ²­ λ©”μ†Œλ“œκ°€ GET으둜 λ³€κ²½

> λͺ…ν™• 

 

 

PRG : POST / Redirect / GET

μΌμ‹œμ μΈ λ¦¬λ‹€μ΄λ ‰μ…˜ μ˜ˆμ‹œ

 

PRGλ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠμœΌλ©΄, POST둜 주문후에 μ›Ή λΈŒλΌμš°μ € μƒˆλ‘œκ³ μΉ¨ν•  λ•Œ, 쀑볡 주문이 될 수 μžˆμŠ΅λ‹ˆλ‹€.

 

ν•˜μ§€λ§Œ PRGλ₯Ό μ‚¬μš©ν•˜λ©΄ μƒˆλ‘œκ³ μΉ¨ν•΄λ„ 쀑볡주문이 λ˜μ§€ μ•Šκ³ , μ£Όλ¬Έκ²°κ³Ό ν™”λ©΄λ§Œ GETν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

κ·Έλž˜μ„œ 뭘 써야 ν•˜λƒ?

 

307은 λ¦¬λ‹€μ΄λ ‰νŠΈν•˜λ©΄ λ©”μ†Œλ“œκ°€ λ³€κ²½λ˜μ§€ μ•Šκ³ , 

303은 λ¦¬λ‹€μ΄λ ‰νŠΈν•˜λ©΄ λ©”μ†Œλ“œκ°€ GET으둜 λ³€κ²½λœλ‹€λŠ” λͺ…확성을 가지고 μžˆμ§€λ§Œ 302λŠ” λͺ¨ν˜Έν•˜μ£ .

 

ν•˜μ§€λ§Œ μ‹€μ œλ‘œλŠ” 302λ₯Ό κΈ°λ³Έκ°’μœΌλ‘œ μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 

μžλ™ λ¦¬λ‹€μ΄λ ‰μ…˜μ‹œμ— GET으둜 변해도 되면 κ·Έλƒ₯ 302λ₯Ό μ‚¬μš©ν•΄λ„ λ¬Έμ œκ°€ μ—†μŠ΅λ‹ˆλ‹€.

 


기타 λ¦¬λ‹€μ΄λ ‰μ…˜ - 300, 304

300 Multiple choices : μ•ˆμ”λ‹ˆλ‹€.

304 Not Modified

  • μΊμ‹œλ₯Ό λͺ©μ μœΌλ‘œ μ‚¬μš©ν•˜λŠ”λ° ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ λ¦¬μ†ŒμŠ€κ°€ μˆ˜μ •λ˜μ§€ μ•Šμ•˜μŒμ„ μ•Œλ €μ£Όμ–΄ ν΄λΌμ΄μ–ΈνŠΈκ°€ 둜컬 PC에 μ €μž₯된 μΊμ‹œλ‘œ λ¦¬λ‹€μ΄λ ‰νŠΈν•΄μ„œ μ €μž₯된 μΊμ‹œλ₯Ό μž¬μ‚¬μš©ν•˜κ²Œ ν•΄μ€λ‹ˆλ‹€.
  • 304 응닡은 응닡에 λ©”μ‹œμ§€ λ°”λ””λ₯Ό ν¬ν•¨ν•˜λ©΄ μ•ˆλ©λ‹ˆλ‹€! (둜컬 μΊμ‹œλ₯Ό μ‚¬μš©ν•˜κ²Œλ” ν•˜κΈ° μœ„ν•΄)
  • 쑰건뢀 GET, HEAD μš”μ²­ μ‹œ μ‚¬μš©ν•©λ‹ˆλ‹€

4xx - ν΄λΌμ΄μ–ΈνŠΈ 였λ₯˜

ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ— 잘λͺ»λœ 문법 λ“±μœΌλ‘œ μ„œλ²„κ°€ μš”μ²­μ„ μˆ˜ν–‰ν•  수 없을 λ•Œ

였λ₯˜μ˜ 원인이 ν΄λΌμ΄μ–ΈνŠΈμ— μžˆμ„ λ•Œ μ‘λ‹΅λ©”μ‹œμ§€λ‘œ 4xx을 λ³΄λƒ…λ‹ˆλ‹€.

400 Bad Request

μš”μ²­ ꡬ문, λ©”μ‹œμ§€ λ“± 였λ₯˜

ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­ λ‚΄μš©μ„ μž¬κ²€ν† ν•˜κ³  보내야 ν•©λ‹ˆλ‹€.

μš”μ²­ νŒŒλΌλ―Έν„°λ‚˜, API μŠ€νŽ™μ΄ λ§žμ§€ μ•Šμ„ λ•Œ

401 Unauthrorized

인증 λ˜μ§€ μ•ŠμŒ

401 였λ₯˜ λ°œμƒμ‹œ 응닡에 WWW-Authenticate 헀더와 ν•¨κ»˜ 인증 방법을 μ„€λͺ…

> 인증 : 본인이 λˆ„κ΅¬μΈμ§€ 확인 (둜그인)

403 Forbidden

> 인증자격 증λͺ…은 μžˆμ§€λ§Œ, μ ‘κ·ΌκΆŒν•œμ΄ λΆˆμΆ©λΆ„ν•œ 경우

ex) admin 등급이 μ•„λ‹Œ μ‚¬μš©μžκ°€ λ‘œκ·ΈμΈμ€ ν–ˆμ§€λ§Œ, μ–΄λ“œλ―Ό λ“±κΈ‰μ˜ λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•˜λŠ” 경우

404 Not Found

> μš”μ²­ λ¦¬μ†ŒμŠ€κ°€ μ„œλ²„μ— 없을 λ•Œ

> ν΄λΌμ΄μ–ΈνŠΈκ°€ κΆŒν•œμ΄ λΆ€μ‘±ν•œ λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•  λ•Œ ν•΄λ‹Ή λ¦¬μ†ŒμŠ€λ₯Ό 숨기고 싢을 λ•Œ

 


5xx - μ„œλ²„ 였λ₯˜ 

μ„œλ²„ 문제둜 였λ₯˜ λ°œμƒν•˜κΈ° λ•Œλ¬Έμ— μž¬μ‹œλ„ ν•˜λ©΄ 성곡할 μˆ˜λ„ 있음

500 Internal Server Error

μ„œλ²„ 문제둜 였λ₯˜ λ°œμƒ, μ• λ§€ν•˜λ©΄ 500였λ₯˜

503 Service Unavailable

μ„œλΉ„μŠ€ 이용 λΆˆκ°€ 

> μ„œλ²„κ°€ μΌμ‹œμ  κ³ΌλΆ€ν•˜ λ˜λŠ” μ˜ˆμ •λœ μž‘μ—…μœΌλ‘œ μš”μ²­μ„ μ²˜λ¦¬ν•  수 없을 λ•Œ

> Retry-After 헀더 ν•„λ“œλ‘œ μ–Όλ§ˆλ’€μ— λ³΅κ΅¬λ˜λŠ”μ§€ 보낼 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

'πŸ“— CS > HTTP' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

HTTP ν‘œν˜„ 헀더 - μΊμ‹œ  (1) 2023.02.17
HTTP ν‘œν˜„ 헀더  (0) 2023.02.17
HTTP λ©”μ†Œλ“œ ν™œμš©  (0) 2023.02.15
HTTP λ©”μ†Œλ“œ - GET, POST, PUT, PATCH, DELETE in Start line  (0) 2023.02.15
HTTP ( HyperText Transfer Protocol)  (0) 2023.02.15

λΈ”λ‘œκ·Έμ˜ 정보

Study Repository

rlaehddnd0422

ν™œλ™ν•˜κΈ°