λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
CS/HTTP

[HTTP] : Status μ½”λ“œ 정리

by κΆŒμŠΎν–„ 2023. 7. 18.

"HTTP Status Codes"λŠ” ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„λ‘œ 보낸 μš”μ²­μ— λŒ€ν•œ "응닡"을 λ‚˜νƒ€λ‚΄λŠ”λ° μ‚¬μš©ν•œλ‹€.

각 μ½”λ“œλ“€μ€ "νŠΉμ •ν•œ 의미"λ₯Ό κ°€μ§€κ³  있고,

Status μ½”λ“œλ“€μ€ "3κ°€μ§€μ˜ 숫자"둜 μ΄λ£¨μ–΄μ ΈμžˆμœΌλ©°,

"μ•žμžλ¦¬ 숫자"에 따라 5개의 클래슀둜 λ‚˜λˆ„μ–΄μ§„λ‹€.

# Status Codes : 100~199 Informational (정보 응닡) 

# μœ„ ν΄λž˜μŠ€λŠ” μ„œλ²„κ°€ μš”μ²­μ„ λ°›μ•˜κ³ ,
# μ„œλ²„μ™€ μ—°κ²°λœ ν΄λΌμ΄μ–ΈνŠΈλŠ” κ³„μ†μ μœΌλ‘œ μž‘μ—…μ„ μ§„ν–‰ν•˜λΌλŠ” μ˜λ―Έμ΄λ‹€.

1) 100 continue

ν΄λΌμ΄μ–ΈνŠΈλŠ” μš”μ²­μ„ 계속해야 ν•œλ‹€. 이 μž„μ‹œ 응닡은 ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ 보낸 μš”μ²­μ˜ 초기 뢀뢄이 μˆ˜μ‹ λ˜μ—ˆμœΌλ©°, ν˜„μž¬ μ„œλ²„μ—μ„œ κ±°λΆ€λ˜μ§€ μ•Šμ•˜μŒμ„ λ‚˜νƒ€λ‚΄λŠ”λ° μ‚¬μš©ν•œλ‹€.

그렇기에 ν΄λΌμ΄μ–ΈνŠΈλŠ” 남은 μš”μ²­μ‚¬ν•­μ„ κ³„μ†ν•΄μ„œ μ§„ν–‰ν•΄μ•Ό ν•˜κ³ , 이미 λͺ¨λ“  μš”μ²­μ‚¬ν•­μ΄ μ™„λ£Œλœ κ²½μš°μ—λŠ” 이 응닡을 λ¬΄μ‹œν•œλ‹€.

2) 101 Switching Protocol (μ„œλ²„κ°€ μ „ν™˜λ˜λŠ” ν”„λ‘œν† μ½œ)

1. μ„œλ²„λŠ”
2. μ—…κ·Έλ ˆμ΄λ“œ λ©”μ‹œμ§€ 헀더λ₯Ό ν†΅ν•΄μ„œ
3. 이 μ—°κ²°μ—μ„œ μ‚¬μš©λ˜λŠ” μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ ν”„λ‘œν† μ½œμ˜ 변경에 λŒ€ν•œ ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„
μ΄ν•΄ν•˜κ³  λ”°λ₯Έλ‹€.

μ„œλ²„λŠ” 101 응닡을 μ’…λ£Œν•˜λŠ” λΉˆμ€„μ˜ λ°”λ‘œ λ‹€μŒμ—,
μ‘λ‹΅μ˜ μ—…κ·Έλ ˆμ΄λ“œ ν—€λ”ν•„λ“œμ— μ •μ˜λœ ν”„λ‘œν† μ½œλ‘œ ν”„λ‘œν† μ½œμ„ μ „ν™˜ν•œλ‹€.

ν”„λ‘œν† μ½œμ„ μ „ν™˜μ‹œν‚€λŠ” λΆ€λΆ„μ—μ„œ μ „ν™˜ν•˜λŠ”κ²ƒμ΄ μœ λ¦¬ν•œ 경우일 λ•Œ μ „ν™˜μ‹œμΌœμ•Ό ν•©λ‹ˆλ‹€.

ν•΄λ‹Ή μ½”λ“œλŠ” WebSocket ν”„λ‘œν† μ½œ μ „ν™˜μ‹œμ— μ‚¬μš©λ©λ‹ˆλ‹€.

3) 102 Processing(WebDAV) (처리)

이 μ½”λ“œλŠ” μ„œλ²„κ°€ μš”μ²­μ„ μˆ˜μ‹ ν•˜μ—¬ μ²˜λ¦¬μ€‘μ— μžˆμœΌλ‚˜, 아직 μ‚¬μš©ν•  수 μžˆλŠ” 응닡이 μ—†λ‹€λŠ” 것을 μ•Œλ €μ£ΌλŠ” μ½”λ“œμž…λ‹ˆλ‹€.

4) 103 Early Hints 

이 μƒνƒœμ½”λ“œλŠ” 주둜 헀더와 ν•¨κ»˜ μ‚¬μš©λ©λ‹ˆλ‹€.
μ„œλ²„κ°€ 응닡을 μ€€λΉ„ν•˜λŠ” λ™μ•ˆ link μ‚¬μš©μž μ—μ΄μ „νŠΈκ°€ λ¦¬μ†ŒμŠ€ 사전 λ‘œλ“œλ₯Ό μ‹œμž‘ν•  수 μžˆλ„λ‘ ν•΄μ€λ‹ˆλ‹€.


# Status Codes : 200~299 Successful responses (성곡적인 응닡)

# μœ„ ν΄λž˜μŠ€λŠ” ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ΄ μ„±κ³΅μ μœΌλ‘œ μˆ˜μ‹ , 이해, 수락 λ˜μ—ˆμŒμ„ λ‚˜νƒ€λ‚΄μ€λ‹ˆλ‹€.

1) 200 OK (성곡)

μš”μ²­μ΄ "성곡" ν–ˆμŒμ„ λ‚˜νƒ€λƒ„.

"성곡" 은 각 HTTP λ©”μ„œλ“œμ— λ”°λΌμ„œ λ‹€λ₯Έ 의미λ₯Ό κ°€μ§‘λ‹ˆλ‹€.

  • GET : λ¦¬μ†ŒμŠ€λ₯Ό 가져와 본문에 전솑을 μ™„λ£Œν–ˆλ‹€.
  • HEAD : 응닡에 헀더가 ν¬ν•¨λœλ‹€.
  • POST || PUT : 쑰치 κ²°κ³Όκ°€ λ‹΄κΈ΄ λ¦¬μ†ŒμŠ€κ°€ 본문에 μ „μ†‘λœλ‹€.
  • TRACE : μ„œλ²„μ—μ„œ 받은 μš”μ²­ λ©”μ‹œμ§€κ°€ ν¬ν•¨λœλ‹€.

2) 201 Created (생성)

μš”μ²­μ΄ μ„±κ³΅ν–ˆκ³  그에 λ”°λ₯Έ 결과둜 μƒˆλ‘œμš΄ λ¦¬μ†ŒμŠ€κ°€ μƒμ„±λ©λ‹ˆλ‹€.
μœ„ 응닡은 일반적으둜 POST μš”μ²­ λ˜λŠ”, 일뢀 PUT μš”μ²­ 후에 μ „μ†‘λ˜λŠ” μ‘λ‹΅μž…λ‹ˆλ‹€.

3) 202 Accepted (수락)

처리λ₯Ό μœ„ν•œ μš”μ²­μ€ μˆ˜λ½λ˜μ—ˆμ§€λ§Œ, 아직 μ²˜λ¦¬κ°€ λ˜μ§„ μ•Šμ€ μƒνƒœ.

μœ„ μ‘λ‹΅μ˜ λͺ©μ μ€, μ²˜λ¦¬κ°€ μ™„λ£Œλ  λ•ŒκΉŒμ§€ μ„œλ²„μ— λŒ€ν•œ μ‚¬μš©μžμ˜ 연결을 지속할 ν•„μš” 없이, μ„œλ²„κ°€ 일뢀 λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ μš”μ²­μ„ μˆ˜λ½ν•  수 있게 ν•˜κΈ° μœ„ν•¨μ΄λΌκ³  ν•œλ‹€.

결과적으둜 μœ„ 응닡은 μš”μ²­ν•œ μ²˜λ¦¬κ°€ 처리될 μˆ˜λ„ 있고, μ•„λ‹μˆ˜λ„ 있으며, 이런 비동기적인 μž‘μ—…μ—μ„œ λ‹€μ‹œ λ°˜ν™˜ν•  수 μžˆλŠ” HTTP μƒνƒœ μ½”λ“œκ°€ μ—†κΈ° λ•Œλ¬Έμ—, μœ„ 202 응닡은 μ˜λ„μ μœΌλ‘œ μ»€λ°‹λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

4) 203 Non-Authoritative Information (μ‹ λ’°ν•  수 μ—†λŠ” 정보)

μœ„ 응닡은, λ°˜ν™˜λœ 데이터가 원본 μ„œλ²„μ˜ μ‚¬μš©κ°€λŠ₯ν•œ λ°μ΄ν„°μ™€λŠ” μ •ν™•νžˆ μΌμΉ˜ν•˜μ§€ μ•Šκ³ , 둜컬 λ˜λŠ” 타사 λ³΅μ‚¬λ³Έμ—μ„œ μˆ˜μ§‘λ˜μ—ˆμŒμ„ μ˜λ―Έν•œλ‹€.
주둜 λ‹€λ₯Έ λ¦¬μ†ŒμŠ€μ˜ 백업에 μ‚¬μš©λœλ‹€.

이 응닡은 μ‚¬μš©μ΄ ν•„μˆ˜κ°€ μ•„λ‹ˆλ©°, μƒνƒœκ°€ 200일 κ²½μš°μ—λ§Œ μ‚¬μš©μ΄ μ ν•©ν•˜λ‹€.

5) 204 No Content (μ½˜ν…μΈ  μ—†μŒ)

이 응닡은 μš”μ²­μ΄ μ„±κ³΅μ μœΌλ‘œ μ²˜λ¦¬λ˜μ—ˆμœΌλ‚˜, λŒ€ν•΄ 보내쀄 컨텐츠가 μ—†μ§€λ§Œ, ν—€λ”μ˜ λ‚΄μš©μ΄ μœ μš©ν•  수 μžˆλ‹€.

μ‚¬μš©μžλŠ” 이 ν—€λ”μ˜ λ‚΄μš©μ„ λ°”νƒ•μœΌλ‘œ μƒˆλ‘œμš΄ ν—€λ”λ‘œ μ—…λ°μ΄νŠΈ ν•  수 μžˆλ‹€.

6) 205 Reset Content (λ‚΄μš© μž¬μ„€μ •)

이 응닡은, ν•΄λ‹Ή μš”μ²­μ„ 보낸 λ¬Έμ„œλ₯Ό μž¬μ„€μ • ν•˜λΌκ³  μ‚¬μš©μžμ—κ²Œ μ•Œλ €μ£ΌλŠ” μ½”λ“œμž…λ‹ˆλ‹€.

μ‘λ‹΅μ—λŠ” Entity(개체)κ°€ 무쑰건 ν¬ν•¨λ˜λ©΄ μ•ˆλ©λ‹ˆλ‹€.

7) 206 Partial Content (νŠΉμ • λΆ€λΆ„)

μ„œλ²„λŠ” λ¦¬μ†ŒμŠ€μ— λŒ€ν•΄ 뢀뢄적인 GETμš”μ²­μ„ μ΄ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.
μš”μ²­μ€ μ›ν•˜λŠ” λ²”μœ„λ₯Ό λ‚˜νƒ€λ‚΄λŠ” Range 헀더λ₯Ό 포함해야 ν•©λ‹ˆλ‹€.

μš”μ²­μ„ μ‘°κ±΄λΆ€λ‘œ λ§Œλ“€κΈ° μœ„ν•œ If-Range 헀더가 포함될 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

8) 207 Multi-Status (WebDAV)

이 응닡은, μ—¬λŸ¬ λ¦¬μ†ŒμŠ€μ— λŒ€ν•œ μš”μ²­μ΄ μ²˜λ¦¬λ˜μ—ˆκ³ , 각 λ¦¬μ†ŒμŠ€μ— λŒ€ν•œ 세뢀적인 μƒνƒœ 정보λ₯Ό μ‘λ‹΅μœΌλ‘œ μ „λ‹¬ν•˜λŠ”λ° μ‚¬μš©ν•©λ‹ˆλ‹€.
주둜 WebDAV ν”„λ‘œν† μ½œκ³Ό κ΄€λ ¨λœ μš”μ²­μ— μ‚¬μš©λ©λ‹ˆλ‹€.

9) 208 Already Reported (WebDAV)

207κ³Ό μœ μ‚¬ν•˜κ²Œ μ—¬λŸ¬ λ¦¬μ†ŒμŠ€μ— λŒ€ν•œ μƒνƒœλ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ‘λ‹΅μ΄μ§€λ§Œ, 보닀 ꡬ체적인 의미λ₯Ό μ „λ‹¬ν•œλ‹€.
주둜 WebDAV ν”„λ‘œν† μ½œκ³Ό κ΄€λ ¨λœ μš”μ²­μ— μ‚¬μš©λ©λ‹ˆλ‹€.

10) 226 IM Used (WebDAV)

WebDAV의 또 λ‹€λ₯Έ μ‘λ‹΅μ½”λ“œμΈ 200 OK 와 κ΅¬λ³„ν•˜κΈ° μœ„ν•΄μ„œ λ„μž…λ˜μ—ˆλ‹€.
주둜 WebDAV ν”„λ‘œν† μ½œκ³Ό κ΄€λ ¨λœ μš”μ²­μ— μ‚¬μš©λ©λ‹ˆλ‹€.

WebDAVμ—μ„œ 이미 직전 μš”μ²­μ—μ„œ μ‚¬μš©ν•œ μΈμŠ€ν„΄μŠ€λ₯Ό μž¬μ‚¬μš©ν•˜κ³  μžˆμŒμ„ μ•Œλ €μ€„ λ•Œ μ‚¬μš©ν•˜λŠ” μ‘λ‹΅μ½”λ“œ 이닀.


# Status Codes : 300~399 Redirection Message (λ‹€μ‹œ μ§€μ‹œ)

# μœ„ ν΄λž˜μŠ€λŠ” μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ μ™„λ£Œν•˜κΈ° μœ„ν•΄ μΆ”κ°€λ™μž‘μ„ μ·¨ν•΄μ•Ό 함을 μ˜λ―Έν•œλ‹€.

1) 300 Multiple Choice (λ‹€μ–‘ν•œ 선택지 쀑 선택)

이 응닡은, ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­ν•œ λ¦¬μ†ŒμŠ€κ°€ ν•œ κ°œκ°€ μ•„λ‹Œ μ—¬λŸ¬κ°œμž„μ„ λ‚˜νƒ€λ‚΄κ³ , μ‚¬μš©μžκ°€ 이 μ€‘μ—μ„œ ν•œ κ°€μ§€λ₯Ό 선택해야 함을 λ‚˜νƒ€λ‚΄μ€λ‹ˆλ‹€.
μ›ΉλΈŒλΌμš°μ €μ—μ„œ 자주 μ‚¬μš©λ˜μ§€λŠ” μ•ŠλŠ”λ‹€κ³  ν•©λ‹ˆλ‹€.

μœ„ 같은 경우, μ„œλ²„λŠ” μ‚¬μš©μžμ—κ²Œ 선택 κ°€λŠ₯ν•œ 리슀트λ₯Ό ν¬ν•¨ν•˜μ—¬ 응닡을 λ³΄λƒ…λ‹ˆλ‹€.
κ·Έλ ‡λ‹€λ©΄, μ‚¬μš©μžλŠ” 리슀트λ₯Ό ν™•μΈν•˜κ³ , μ›ν•˜λŠ” λ¦¬μ†ŒμŠ€λ₯Ό μ„ νƒν•΄μ„œ μ„œλ²„μ— μž¬μš”μ²­ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

예둜 "λ‹€κ΅­μ–΄"κ°€ μžˆμŠ΅λ‹ˆλ‹€.
λ‹€κ΅­μ–΄ λ¦¬μŠ€νŠΈμ—μ„œ μ‚¬μš©μžκ°€ μ›ν•˜λŠ” μ–Έμ–΄λ‘œ μž¬μš”μ²­μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.

2) 301 Moved Permanently (영ꡬ적 이동)

ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­ν•œ λ¦¬μ†ŒμŠ€κ°€ 영ꡬ적으둜 μƒˆλ‘œμš΄ μœ„μΉ˜μ— μ΄λ™ν–ˆμŒμ„ λ‚˜νƒ€λ‚΄μ£ΌλŠ” 응닡이닀.
μ›ΉλΈŒλΌμš°μ €μ—μ„œ 자주 μ‚¬μš©λ˜λŠ” μ½”λ“œ 쀑 ν•˜λ‚˜.

μœ„ 응닡은 일반적으둜 λ¦¬μ†ŒμŠ€μ— ν•΄λ‹Ήν•˜λŠ” URL이 λ³€κ²½λ˜μ—ˆκ³ ,
μƒˆλ‘œμš΄ URL을 ν†΅ν•΄μ„œ λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•΄μ•Ό ν•  λ•Œ μ•Œλ €μ£ΌλŠ” μ½”λ“œμž…λ‹ˆλ‹€.
μ—¬κΈ°μ„œ μ‘λ‹΅μ˜ λ³Έλ¬Έμ—λŠ” μƒˆλ‘œμš΄ URL이 ν¬ν•¨λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

3) 302 Found (μΌμ‹œμ  이동)

μ›ΉλΈŒλΌμš°μ €μ—μ„œ 자주 μ‚¬μš©λ˜λŠ” μ½”λ“œ 쀑 ν•˜λ‚˜.
λ¦¬μ†ŒμŠ€μ˜ URL이 μΌμ‹œμ μœΌλ‘œ λ³€κ²½λœ κ²½μš°μ— μ‚¬μš©λ©λ‹ˆλ‹€.

μΌμ‹œμ μœΌλ‘œ λ³€κ²½λœ URL을 응닡 본문에 ν¬ν•¨μ‹œμΌœ μ‚¬μš©μžμ—κ²Œ μ•Œλ €μ€˜μ•Ό ν•©λ‹ˆλ‹€.

301κ³ΌλŠ” 차이가 μžˆμŠ΅λ‹ˆλ‹€.

4) 303 See Other (μš”μ²­ν•œ λ¦¬μ†ŒμŠ€κ°€ λ‹€λ₯Έ μœ„μΉ˜λ‘œ 이동)

μ›ΉλΈŒλΌμš°μ €μ—μ„œ 자주 μ‚¬μš©λ˜λŠ” μ½”λ“œ 쀑 ν•˜λ‚˜.
μœ„ 응닡은 주둜 POST와 같이 ν΄λΌμ΄μ–ΈνŠΈκ°€ λ¦¬μ†ŒμŠ€λ₯Ό μƒμ„±ν•˜κ±°λ‚˜ μˆ˜μ •ν•œ 후에 ν•΄λ‹Ή λ¦¬μ†ŒμŠ€λ₯Ό ν™•μΈν•˜κΈ° μœ„ν•΄μ„œ Redirection ν•  λ•Œ μ‚¬μš©ν•œλ‹€.

μ„œλ²„λŠ” 응닡 본문에 ν•΄λ‹Ή μœ„μΉ˜μ— λŒ€ν•œ URL을 포함해야 ν•˜λ©°, ν΄λΌμ΄μ–ΈνŠΈλŠ” GETμš”μ²­μ„ 톡해 λ¦¬μ†ŒμŠ€λ₯Ό 확인할 수 μžˆλ‹€.

5) 304 Not Modified (μˆ˜μ • λ˜μ§€ μ•ŠμŒ)

ν΄λΌμ΄μ–ΈνŠΈμ˜ cachκ°€ μ΅œμ‹  λ²„μ „μ˜ λ¦¬μ†ŒμŠ€λ₯Ό κ°€μ§€κ³  μžˆμ–΄μ„œ μˆ˜μ •λ˜μ§€ μ•ŠμŒμ„ μ‘λ‹΅μœΌλ‘œμ¨ λ‚˜νƒ€λ‚΄μ€€λ‹€.

6) 307 Temporary Redirect

302 Found 응닡과 같은 의미λ₯Ό κ°€μ§€κ³  μžˆμœΌλ‚˜, 이전에 μ‚¬μš©λœ HTTP λ©”μ„œλ“œκ°€ λ‹€μŒ μš”μ²­μ‹œμ—λ„ λ³€ν•˜λ©΄ μ•ˆλœλ‹€λŠ” 점이 λ‹€λ₯΄λ‹€.

첫 번째 μš”μ²­μ—μ„œ POST λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ˜€λ‹€λ©΄, 두 번째 μš”μ²­μ—μ„œλ„ POST λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

7) 308 Permanent Redirect

301 Moved Permanently 응닡과 같은 의미λ₯Ό κ°€μ§€κ³  μžˆμœΌλ‚˜, 이전에 μ‚¬μš©λœ HTTP λ©”μ„œλ“œκ°€ λ‹€μŒ μš”μ²­μ‹œμ—λ„ λ³€ν•˜λ©΄ μ•ˆλœλ‹€λŠ” 점이 λ‹€λ₯΄λ‹€.

첫 번째 μš”μ²­μ—μ„œ POST λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ˜€λ‹€λ©΄, 두 번째 μš”μ²­μ—μ„œλ„ POST λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.


# Status Codes : 400~499 Client Error Responses (ν΄λΌμ΄μ–ΈνŠΈ 였λ₯˜ 응닡)

# ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ΄ 잘λͺ»λ˜μ—ˆκ±°λ‚˜, μ„œλ²„κ°€ μš”μ²­μ„ μ΄ν•΄ν•˜μ§€ λͺ»ν–ˆμŒμ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

1) 400 Bad Request (잘λͺ»λœ μš”μ²­)

ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ΄ μ„œλ²„μ— μ „λ‹¬λœ "μ‹œμ "에 μœ νš¨ν•˜μ§€ μ•Šμ€ 경우 μ‚¬μš©ν•œλ‹€.
ν΄λΌμ΄μ–ΈνŠΈκ°€ ꡬ문을 μž‘μ„±ν•˜κ±°λ‚˜, ν•„μš”ν•œ 데이터λ₯Ό μš”μ²­μ— ν¬ν•¨μ‹œν‚€μ§€ μ•Šμ•˜μ„ λ•Œ λ°œμƒν•  수 μžˆλ‹€.

예둜 ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ—κ²Œ 잘λͺ»λœ 데이터 ν˜•μ‹μœΌλ‘œ μš”μ²­μ„ λ³΄λ‚΄κ±°λ‚˜ ν•„μˆ˜μ μΈ νŒŒλΌλ―Έν„°λ₯Ό λˆ„λ½ν•œ 경우 400 Bad Request μƒνƒœ μ½”λ“œκ°€ λ°˜ν™˜λ  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ μ„œλ²„κ°€ μš”μ²­μ„ μ˜¬λ°”λ₯΄κ²Œ μ²˜λ¦¬ν•  수 μ—†λŠ” κ²½μš°μ—λ„ 이 μƒνƒœ μ½”λ“œκ°€ μ‚¬μš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.

2) 401 Unauthorized (μΈμ¦λ˜μ§€ μ•Šμ€ μš”μ²­)

μΈμ¦λ˜μ§€ μ•Šμ€ μš”μ²­μž„μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ μ΄ν•΄ν•˜μ§€λ§Œ, μš”μ²­λœ λ¦¬μ†ŒμŠ€μ— λŒ€ν•œ μ ‘κ·Ό κΆŒν•œμ΄ μ—†λŠ” κ²½μš°μ— μ‚¬μš©λ©λ‹ˆλ‹€.
ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­μ„ 보낸 경우, μ„œλ²„λŠ” ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ 인증이 ν•„μš”ν•˜λ‹€λŠ” λ©”μ‹œμ§€λ₯Ό ν•¨κ»˜ μ‘λ‹΅μœΌλ‘œ λ³΄λƒ…λ‹ˆλ‹€.
ν΄λΌμ΄μ–ΈνŠΈλŠ” 이후 인증 정보λ₯Ό μ œκ³΅ν•˜μ—¬ μ ‘κ·Ό κΆŒν•œμ„ μ–»μ–΄μ•Ό ν•©λ‹ˆλ‹€.

3) 402 Payment Required (μ„œλ²„μ— μš”μ²­ν•œ λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όμ‹œ 결제 ν•„μš”)

λ””μ§€ν„Έ 결제 μ‹œμŠ€ν…œμ— μ‚¬μš©ν•˜κΈ° μœ„ν•œ λͺ©μ μœΌλ‘œ λ§Œλ“€μ–΄μ‘ŒμœΌλ‚˜, ν˜„μž¬λŠ” μ‚¬μš©λ˜κ³  μžˆμ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€.

4) 403 Forbidden (μ ‘κ·Ό κΆŒν•œ μ—†μŒ)

μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ μ΄ν•΄ν–ˆμ§€λ§Œ, ν΄λΌμ΄μ–ΈνŠΈμ˜ 인증 μ •λ³΄λ‚˜ κΆŒν•œμ΄ μœ νš¨ν•˜μ§€ μ•Šμ•„μ„œ μš”μ²­λœ λ¦¬μ†ŒμŠ€μ— 접근을 κ±°λΆ€ν•œ κ²½μš°μ— μ‚¬μš©λ©λ‹ˆλ‹€.

λ˜ν•œ, ν΄λΌμ΄μ–ΈνŠΈμ˜ 인증 정보가 μœ νš¨ν•˜μ§€ μ•Šκ±°λ‚˜ λ§Œλ£Œλ˜μ—ˆμ„ λ•Œμ—λ„ μ΄λŸ¬ν•œ μƒνƒœ μ½”λ“œκ°€ μ‚¬μš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.

예둜, κΈ°λŠ₯κ΅¬ν˜„μ˜ 토큰이 μžˆλ‹€.

5) 404 Not Found (μš”μ²­ν•œ λ¦¬μ†ŒμŠ€λ₯Ό 찾을 수 μ—†μŒ)

μš”μ²­ν•œ λ¦¬μ†ŒμŠ€λ₯Ό μ„œλ²„μ—μ„œ 찾을 수 μ—†μŒμ„ λ‚˜νƒ€λ‚΄ μ€λ‹ˆλ‹€.
ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­ν•œ URL이 μ„œλ²„μ—μ„œ μΈμ‹λ˜μ§€ μ•ŠλŠ” κ²½μš°μ— μ‚¬μš©λ©λ‹ˆλ‹€.

즉, μ˜€νƒ€λ‚˜ 잘λͺ»λœ URL을 μ‚¬μš©ν•˜μ—¬ μš”μ²­ν–ˆμ„ λ•Œλ‚˜, μ‚­μ œλœ λ¦¬μ†ŒμŠ€λ₯Ό μš”μ²­ν–ˆμ„ λ•Œ, λ˜λŠ” μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” νŽ˜μ΄μ§€λ₯Ό μš”μ²­ν–ˆμ„ λ•Œ 등에 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

6) 405 Method Not Allowed (μš”μ²­ν•œ HTTP λ©”μ„œλ“œ ν—ˆμš© λΆˆκ°€)

ν΄λΌμ΄μ–ΈνŠΈκ°€ μ‚¬μš©ν•œ HTTP λ©”μ„œλ“œλŠ” μ„œλ²„μ—μ„œ μ§€μ›ν•˜μ§€ μ•ŠλŠ” λ©”μ„œλ“œλΌλŠ” 것을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

예둜, μ„œλ²„μ—μ„œ νŠΉμ • URL에 λŒ€ν•΄ GET μš”μ²­λ§Œ ν—ˆμš©λ˜λ„λ‘ μ„€μ •ν•œ κ²½μš°μ—λŠ”,
ν΄λΌμ΄μ–ΈνŠΈκ°€ ν•΄λ‹Ή URL에 POST μš”μ²­μ„ 보내면 405 Method Not Allowed μƒνƒœ μ½”λ“œκ°€ λ°˜ν™˜λ  수 μžˆλ‹€.
μ΄λŠ” μ„œλ²„μ—μ„œ ν•΄λ‹Ή λ¦¬μ†ŒμŠ€μ— λŒ€ν•΄ POST λ©”μ„œλ“œλ₯Ό μ§€μ›ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ΄λ‹€.

7) 406 Not Acceptable (ν—ˆμš©λ˜μ§€ μ•Šμ€ λ―Έλ””μ–΄νƒ€μž…)

ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­ν•œ λ¦¬μ†ŒμŠ€μ— λŒ€ν•΄ μ„œλ²„κ°€ ν—ˆμš©ν•˜μ§€ μ•ŠλŠ” λ―Έλ””μ–΄ νƒ€μž…μ„ μš”μ²­ν–ˆμ„ λ•Œ μ‚¬μš©λ˜λŠ” μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€.
ν΄λΌμ΄μ–ΈνŠΈκ°€ Accept 헀더λ₯Ό 톡해 μ§€μ›ν•˜μ§€ μ•ŠλŠ” λ―Έλ””μ–΄ νƒ€μž…μ„ μš”μ²­ν–ˆκ±°λ‚˜,
μ„œλ²„κ°€ μš”μ²­λœ λ―Έλ””μ–΄ νƒ€μž…μ„ μ œκ³΅ν•  수 μ—†λŠ” κ²½μš°μ— λ°˜ν™˜ν•©λ‹ˆλ‹€.

예둜, ν΄λΌμ΄μ–ΈνŠΈκ°€ JSON ν˜•μ‹μ˜ 데이터λ₯Ό μš”μ²­ν–ˆμ§€λ§Œ μ„œλ²„μ—μ„œλŠ” JSON을 μ§€μ›ν•˜μ§€ μ•Šκ³  XML ν˜•μ‹μ˜ λ°μ΄ν„°λ§Œ μ œκ³΅ν•˜λŠ” κ²½μš°μ—λŠ”
406 Not Acceptable μƒνƒœ μ½”λ“œκ°€ λ°˜ν™˜λ  수 μžˆμŠ΅λ‹ˆλ‹€.
λ˜λŠ” ν΄λΌμ΄μ–ΈνŠΈκ°€ νŠΉμ • 인코딩을 μš”μ²­ν–ˆλŠ”λ° μ„œλ²„μ—μ„œ κ·Έ 인코딩을 μ§€μ›ν•˜μ§€ μ•ŠλŠ” κ²½μš°μ—λ„ μ΄λŸ¬ν•œ μƒνƒœ μ½”λ“œκ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

8) 407 Proxy Authentication Required (Proxy μ„œλ²„ 인증)

401κ³Ό μœ μ‚¬ν•œ 의미λ₯Ό κ°€μ§€μ§€λ§Œ, ν”„λ‘μ‹œμ— μ˜ν•œ 인증이 ν•„μš”ν•¨μ„ λ‚˜νƒ€λ‚Έλ‹€.
ν΄λΌμ΄μ–ΈνŠΈκ°€ ν”„λ‘μ‹œ μ„œλ²„λ₯Ό 톡해 μš”μ²­μ„ 보내기 μœ„ν•΄μ„œλŠ” 인증이 ν•„μš”ν•˜λ‹€λŠ” 것을 λ‚˜νƒ€λ‚΄λŠ” μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€.

즉, ν΄λΌμ΄μ–ΈνŠΈκ°€ ν”„λ‘μ‹œ μ„œλ²„μ—μ„œ μš”κ΅¬ν•˜λŠ” 인증 정보λ₯Ό μ œκ³΅ν•΄μ•Ό 원격 μ„œλ²„μ™€μ˜ 톡신을 이룰 수 μžˆμŠ΅λ‹ˆλ‹€.

9) 408 Request Timeout (μ‹œκ°„ μ§€μ—°)

μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ μˆ˜ν–‰ν•˜κΈ°κΉŒμ§€μ˜ μ‹œκ°„μ΄ μ§€λ‚˜μ„œ μš”μ²­μ„ μ²˜λ¦¬ν•˜μ§€ λͺ»ν–ˆμ„ λ•Œ μ‚¬μš©λ˜λŠ” HTTP μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€.
ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­μ„ λ³΄λƒˆμ§€λ§Œ, μ„œλ²„κ°€ 일정 μ‹œκ°„ 내에 μš”μ²­μ„ μ²˜λ¦¬ν•˜μ§€ λͺ»ν•œ κ²½μš°μ— λ°œμƒν•©λ‹ˆλ‹€.
ν΄λΌμ΄μ–ΈνŠΈλŠ” μš”μ²­μ΄ μ‹œκ°„ μ΄ˆκ³Όλ˜μ—ˆμŒμ„ μΈμ‹ν•˜κ³ , λ‹€μ‹œ μš”μ²­μ„ μ‹œλ„ν•˜κ±°λ‚˜, λ„€νŠΈμ›Œν¬ μƒνƒœλ₯Ό ν™•μΈν•˜μ—¬ 문제λ₯Ό ν•΄κ²°ν•΄μ•Ό ν•©λ‹ˆλ‹€.

10) 409 Conflict (좩돌)

μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ μ²˜λ¦¬ν•  수 μ—†λŠ” κ²½μš°μ— μ‚¬μš©λ˜λŠ” μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€.
ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ΄ ν˜„μž¬ μ„œλ²„μ˜ μƒνƒœμ™€ 좩돌이 λ°œμƒν•˜μ—¬ μš”μ²­μ„ μ„±κ³΅μ μœΌλ‘œ μˆ˜ν–‰ν•  수 μ—†μŒμ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

μœ„ μ½”λ“œλŠ” 주둜 λ‹€μŒκ³Ό 같은 μƒν™©μ—μ„œ μ‚¬μš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.

  1. λ™μ‹œμ„± 좩돌: μ—¬λŸ¬ ν΄λΌμ΄μ–ΈνŠΈκ°€ λ™μ‹œμ— 같은 λ¦¬μ†ŒμŠ€λ₯Ό μˆ˜μ •ν•˜λ €κ³  ν•  λ•Œ, μ„œλ²„λŠ” 이λ₯Ό μ²˜λ¦¬ν•˜λŠ” 데 좩돌이 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    예λ₯Ό λ“€μ–΄, 두 ν΄λΌμ΄μ–ΈνŠΈκ°€ 같은 데이터λ₯Ό μˆ˜μ •ν•˜λ €κ³  ν•  λ•Œ 각각의 λ³€κ²½ 사항이 μ„œλ‘œ μΆ©λŒν•˜μ—¬ μ„œλ²„κ°€ μƒνƒœλ₯Ό κ²°μ •ν•  수 μ—†λŠ” κ²½μš°μ— μœ„ μ½”λ“œκ°€ λ°˜ν™˜λ  수 μžˆμŠ΅λ‹ˆλ‹€.

  2. λ¦¬μ†ŒμŠ€ μƒνƒœ 좩돌: ν΄λΌμ΄μ–ΈνŠΈκ°€ λ¦¬μ†ŒμŠ€λ₯Ό μƒμ„±ν•˜λ €κ³  ν•  λ•Œ 이미 ν•΄λ‹Ή λ¦¬μ†ŒμŠ€κ°€ μ‘΄μž¬ν•˜λŠ” 경우,
    μ„œλ²„λŠ” μƒˆλ‘œμš΄ λ¦¬μ†ŒμŠ€λ₯Ό μƒμ„±ν•˜λŠ” λŒ€μ‹  κΈ°μ‘΄ λ¦¬μ†ŒμŠ€λ₯Ό μˆ˜μ •ν•˜κ±°λ‚˜ λ‹€λ₯Έ λ°©λ²•μœΌλ‘œ μΆ©λŒμ„ μ²˜λ¦¬ν•΄μ•Ό ν•©λ‹ˆλ‹€.

  3. 데이터 μœ νš¨μ„± 좩돌: ν΄λΌμ΄μ–ΈνŠΈκ°€ μœ νš¨ν•˜μ§€ μ•Šμ€ 데이터λ₯Ό μ„œλ²„μ— μ „λ‹¬ν•˜λ©΄,
    μ„œλ²„λŠ” μ΄λŸ¬ν•œ λ°μ΄ν„°λ‘œ 인해 μš”μ²­μ„ μ²˜λ¦¬ν•  수 μ—†λŠ” μƒνƒœκ°€ λ˜λŠ” κ²½μš°κ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

11) 410 Gone (μ‘΄μž¬ν–ˆμœΌλ‚˜, ν˜„μž¬λŠ” μ‚­μ œλœ λ¦¬μ†ŒμŠ€)

ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­ν•œ λ¦¬μ†ŒμŠ€κ°€ 영ꡬ적으둜 μ‚­μ œλ˜μ–΄ 더 이상 μ‚¬μš©ν•  수 μ—†μŒμ„ λ‚˜νƒ€λ‚΄λŠ” HTTP μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€.
ν•΄λ‹Ή λ¦¬μ†ŒμŠ€κ°€ μ‚­μ œλ˜μ–΄ 더 이상 μ‚¬μš©ν•  수 μ—†λ‹€λŠ” 것을 ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ μ•Œλ €μ£ΌκΈ° μœ„ν•΄ μ‚¬μš©λ©λ‹ˆλ‹€.
ν΄λΌμ΄μ–ΈνŠΈλŠ” 영ꡬ적으둜 μ‚­μ œλœ λ¦¬μ†ŒμŠ€λ₯Ό 더 이상 μ‚¬μš©ν•˜μ§€ μ•Šκ³ , λ‹€λ₯Έ μœ νš¨ν•œ λ¦¬μ†ŒμŠ€λ₯Ό μ°Ύμ•„ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

12) 411 Length Required (POSTμš”μ²­ μ‹œ νŠΉμ • 헀더λ₯Ό ν¬ν•¨ν•˜μ§€ μ•Šμ€ 경우)

ν΄λΌμ΄μ–ΈνŠΈκ°€ POST μš”μ²­μ„ 보낼 λ•Œ Content-Length 헀더λ₯Ό ν¬ν•¨ν•˜μ§€ μ•Šμ€ κ²½μš°μ— λ°œμƒν•˜λŠ” μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€.
이 μƒνƒœ μ½”λ“œλŠ” μ„œλ²„κ°€ μš”μ²­μ˜ λ°”λ”” 크기λ₯Ό μ•Œ 수 μ—†μ–΄ μš”μ²­μ„ μ²˜λ¦¬ν•  수 μ—†μŒμ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

13) 412 Precondition Failed (μ „μ œμ‘°κ±΄ 뢈일치)

μœ„ μ½”λ“œλŠ” μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ μ²˜λ¦¬ν•˜κΈ° 전에 μš”μ²­μ— μ§€μ •λœ 사전 쑰건(precondition)이 μΆ©μ‘±λ˜μ§€ μ•Šμ•˜μ„ λ•Œ μ‚¬μš©λ˜λŠ” μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€.
즉, ν΄λΌμ΄μ–ΈνŠΈκ°€ νŠΉμ • 쑰건을 μΆ©μ‘±μ‹œν‚€μ§€ μ•Šμ€ μƒνƒœμ—μ„œ μš”μ²­μ„ 보낸 κ²½μš°μ— 이 μƒνƒœ μ½”λ“œκ°€ λ°˜ν™˜λ©λ‹ˆλ‹€.

μœ„μ˜ 사전 쑰건은 주둜 μš”μ²­μ— λŒ€ν•œ 쑰건뢀 μš”μ²­(Conditional Request)μ—μ„œ μ‚¬μš©λ©λ‹ˆλ‹€.
쑰건뢀 μš”μ²­μ€ ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ— λ¦¬μ†ŒμŠ€λ₯Ό μš”μ²­ν•  λ•Œ, ν•΄λ‹Ή λ¦¬μ†ŒμŠ€μ˜ μƒνƒœλ‚˜ μ‹œκ°„κ³Ό κ΄€λ ¨λœ 쑰건을 ν•¨κ»˜ μ „λ‹¬ν•˜μ—¬,
νŠΉμ • 쑰건이 μΆ©μ‘±λ˜μ§€ μ•ŠμœΌλ©΄ μš”μ²­μ„ κ±°μ ˆν•˜λ„λ‘ ν•˜λŠ” λ©”μ»€λ‹ˆμ¦˜μž…λ‹ˆλ‹€.

14) 413 Paylord Too Large (μš”μ²­ 크기 초과)

ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„λ‘œ λ³΄λ‚΄λŠ” μš”μ²­μ˜ 크기가 μ„œλ²„κ°€ μ²˜λ¦¬ν•  수 μžˆλŠ” μ΅œλŒ€ 크기λ₯Ό μ΄ˆκ³Όν–ˆμ„ λ•Œ μ‚¬μš©λ˜λŠ” μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€. 즉, ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­μ˜ λ³Έλ¬Έ(payload) 크기가 μ„œλ²„μ˜ μ œν•œμ„ μ΄ˆκ³Όν•˜μ—¬ μš”μ²­μ„ μ²˜λ¦¬ν•  수 없을 λ•Œ 이 μƒνƒœ μ½”λ“œκ°€ λ°˜ν™˜λ©λ‹ˆλ‹€.

15) 414 URI Too Long (URI ν—ˆμš©κΈΈμ΄ 초과)

ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„λ‘œ λ³΄λ‚΄λŠ” μš”μ²­μ˜ URI(Uniform Resource Identifier)κ°€ μ„œλ²„κ°€ μ²˜λ¦¬ν•  수 μžˆλŠ” μ΅œλŒ€ 길이λ₯Ό μ΄ˆκ³Όν–ˆμ„ λ•Œ μ‚¬μš©λ˜λŠ” μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€.
ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­μ˜ URIκ°€ μ„œλ²„κ°€ μ²˜λ¦¬ν•  수 μžˆλŠ” μ œν•œ 길이λ₯Ό μ΄ˆκ³Όν•˜μ—¬ μš”μ²­μ„ μ²˜λ¦¬ν•  수 없을 λ•Œ 이 μƒνƒœ μ½”λ“œκ°€ λ°˜ν™˜λ©λ‹ˆλ‹€.

16) 415 Unsupported Media Type (μ§€μ›λ˜μ§€ μ•ŠλŠ” λ―Έλ””μ–΄ νƒ€μž…)

μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ— ν¬ν•¨λœ λ―Έλ””μ–΄ νƒ€μž…μ„ μ§€μ›ν•˜μ§€ μ•Šμ„ λ•Œ μ‚¬μš©λ˜λŠ” μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€.
ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­μ˜ 본문에 μ§€μ›λ˜μ§€ μ•ŠλŠ” λ―Έλ””μ–΄ νƒ€μž…μ„ ν¬ν•¨ν•˜μ—¬ μ„œλ²„μ— μš”μ²­μ„ 보낸 κ²½μš°μ— 이 μƒνƒœ μ½”λ“œκ°€ λ°˜ν™˜λ©λ‹ˆλ‹€.

17) 416 Requested Range Not Satisfiable (μ§€μ •λ²”μœ„ λ°–μ˜ 였λ₯˜)

ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„λ‘œ 보낸 μš”μ²­μ— μ§€μ •λœ λ²”μœ„(range)κ°€ λ§Œμ‘±λ˜μ§€ μ•Šμ„ λ•Œ μ‚¬μš©λ˜λŠ” μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€.
ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­μ— Range 헀더λ₯Ό ν¬ν•¨ν•˜μ—¬ νŠΉμ • λ²”μœ„μ˜ λ¦¬μ†ŒμŠ€λ₯Ό μš”μ²­ν–ˆμ§€λ§Œ,
ν•΄λ‹Ή λ²”μœ„κ°€ μ„œλ²„κ°€ κ°€μ§€κ³  μžˆλŠ” λ¦¬μ†ŒμŠ€μ˜ 유효 λ²”μœ„λ₯Ό λ²—μ–΄λ‚œ κ²½μš°μ— 이 μƒνƒœ μ½”λ“œκ°€ λ°˜ν™˜λ©λ‹ˆλ‹€.

18) 417 Expectation Failed (Expext μš”μ²­ μ—λŸ¬)

ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ— κΈ°λŒ€(expectation)λ₯Ό μ§€μ •ν–ˆμ§€λ§Œ, μ„œλ²„κ°€ μ΄λŸ¬ν•œ κΈ°λŒ€λ₯Ό λ§Œμ‘±μ‹œν‚¬ 수 없을 λ•Œ μ‚¬μš©λ˜λŠ” μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€. μ΄λŸ¬ν•œ κΈ°λŒ€λŠ” Expect 헀더λ₯Ό μ‚¬μš©ν•˜μ—¬ μš”μ²­ λ©”μ‹œμ§€μ— ν¬ν•¨λ©λ‹ˆλ‹€.

19) 418 I'm a teapot (???)

dμž₯λ‚œμŠ€λŸ½κ²Œ λ§Œλ“€μ–΄μ§„ μƒνƒœ μ½”λ“œλ‘œ, μ‹€μ œλ‘œλŠ” HTTP ν‘œμ€€μ—μ„œ μ‚¬μš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
μœ„ μ½”λ“œλŠ” 1998λ…„ 4월에 λ§Œλ“€μ–΄μ§„ "Hyper Text Coffee Pot Control Protocol (HTCPCP)"λΌλŠ” μž₯λ‚œ μŠ€νŽ™μ—μ„œ λΉ„λ‘―λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

20) 421 Misdirected Request (응닡생성 λΆˆκ°€λŠ₯)

HTTP/2 ν”„λ‘œν† μ½œμ—μ„œ ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ΄ μ„œλ²„μ— 잘λͺ» μ „μ†‘λ˜μ—ˆμ„ λ•Œ μ‚¬μš©λ˜λŠ” μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€.
ν΄λΌμ΄μ–ΈνŠΈλŠ” μ˜¬λ°”λ₯Έ μ„œλ²„μ— μš”μ²­μ„ λ‹€μ‹œ μ‹œλ„ν•΄μ•Ό ν•©λ‹ˆλ‹€.
μ„œλ²„λŠ” μ΄λŸ¬ν•œ 문제λ₯Ό ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ μ•Œλ¦¬κΈ° μœ„ν•΄ 421 Misdirected Request μƒνƒœ μ½”λ“œλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

21) 429 Too Many Requests (λ„ˆλ¬΄ λ§Žμ€ μš”μ²­)

ν΄λΌμ΄μ–ΈνŠΈκ°€ νŠΉμ • μ‹œκ°„ λ™μ•ˆ λ„ˆλ¬΄ λ§Žμ€ μš”μ²­μ„ λ³΄λƒˆμ„ λ•Œ μ‚¬μš©λ˜λŠ” μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€.
μœ„ μ½”λ“œλŠ” μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ μ œν•œν•˜κ³  μžˆμŒμ„ μ•Œλ¦¬λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€.


# Status Codes : 500~599 Server Error Responses (μ„œλ²„ 였λ₯˜ 응닡)

# μ„œλ²„κ°€ μœ νš¨ν•œ μš”μ²­μ„ μˆ˜ν–‰ν•˜μ§€ λͺ»ν–ˆμŒμ„ λ‚˜νƒ€λ‚΄λŠ” ν΄λž˜μŠ€μ΄λ‹€.

1) 500 Internal Server Error (λ‚΄λΆ€ 였λ₯˜)

μ„œλ²„μ—μ„œ λ°œμƒν•œ 내뢀적인 였λ₯˜λ‘œ 인해 μš”μ²­μ„ μ²˜λ¦¬ν•  수 μ—†λŠ” μƒνƒœμž„μ„ λ‚˜νƒ€λ‚΄λŠ” μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€.
μœ„ μ½”λ“œλŠ” μ„œλ²„ μΈ‘μ—μ„œ 예기치 μ•Šμ€ λ¬Έμ œκ°€ λ°œμƒν•˜μ—¬ μš”μ²­μ„ μ²˜λ¦¬ν•˜λŠ” λ™μ•ˆ 였λ₯˜κ°€ λ°œμƒν–ˆμ„ λ•Œ λ°˜ν™˜λ©λ‹ˆλ‹€.

μœ„ μ½”λ“œλŠ” 주둜 λ‹€μŒκ³Ό 같은 μƒν™©μ—μ„œ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  1. μ„œλ²„ μΈ‘ μ½”λ“œ 였λ₯˜: μ„œλ²„μ—μ„œ 처리 쀑에 ν”„λ‘œκ·Έλž¨μ μΈ 였λ₯˜κ°€ λ°œμƒν•œ 경우, μ˜ˆμ™Έκ°€ λ°œμƒν•˜κ±°λ‚˜ μ²˜λ¦¬λ˜μ§€ μ•Šμ€ 였λ₯˜κ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
  2. λ°μ΄ν„°λ² μ΄μŠ€ 였λ₯˜: μ„œλ²„κ°€ λ°μ΄ν„°λ² μ΄μŠ€μ™€ μƒν˜Έ μž‘μš©ν•˜λŠ” λ™μ•ˆ 였λ₯˜κ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  3. μ‹œμŠ€ν…œ λ¦¬μ†ŒμŠ€ λΆ€μ‘±: μ„œλ²„μ˜ μ‹œμŠ€ν…œ λ¦¬μ†ŒμŠ€κ°€ λΆ€μ‘±ν•˜μ—¬ μš”μ²­μ„ μ²˜λ¦¬ν•  수 μ—†λŠ” κ²½μš°κ°€ μžˆμŠ΅λ‹ˆλ‹€.
  4. μ™ΈλΆ€ μ„œλΉ„μŠ€ 였λ₯˜: μ„œλ²„κ°€ μ™ΈλΆ€ μ„œλΉ„μŠ€μ™€ 톡신 쀑에 였λ₯˜κ°€ λ°œμƒν•˜λŠ” κ²½μš°κ°€ μžˆμŠ΅λ‹ˆλ‹€.

2) 501 Not Implemented (κΈ°λŠ₯ 지원 였λ₯˜)

μš”μ²­λ°›μ€ κΈ°λŠ₯이 μ„œλ²„μ—μ„œ κ΅¬ν˜„λ˜μ§€ μ•Šμ•˜μŒμ„ λ‚˜νƒ€λ‚΄λŠ” μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€.
ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ—κ²Œ μš”μ²­ν•œ λ™μž‘μ΄ μ„œλ²„μ—μ„œ 아직 κ΅¬ν˜„λ˜μ§€ μ•Šμ•˜κ±°λ‚˜ μ§€μ›λ˜μ§€ μ•ŠλŠ” κ²½μš°μ— 이 μƒνƒœ μ½”λ“œκ°€ λ°˜ν™˜λ©λ‹ˆλ‹€.

3) 502 Bad Gateway (응닡 λ°›μ§€ λͺ»ν•¨)

κ²Œμ΄νŠΈμ›¨μ΄λ‚˜ ν”„λ‘μ‹œ μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ μˆ˜ν–‰ν•˜λŠ” 도쀑에 μœ νš¨ν•˜μ§€ μ•Šμ€ 응닡을 λ°›μ•˜μ„ λ•Œ μ‚¬μš©λ˜λŠ” μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€. μœ„ μ½”λ“œλŠ” ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„λ‘œ 보낸 μš”μ²­μ„ λ‹€λ₯Έ μ„œλ²„λ‘œ μ „λ‹¬ν•˜κΈ° μœ„ν•΄ κ²Œμ΄νŠΈμ›¨μ΄λ‚˜ ν”„λ‘μ‹œ μ„œλ²„λ₯Ό μ‚¬μš©ν•˜λŠ” κ²½μš°μ— ν”νžˆ λ°œμƒν•©λ‹ˆλ‹€.

μœ„μ˜ μƒνƒœ μ½”λ“œκ°€ λ°œμƒν•  수 μžˆλŠ” 일반적인 상황은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  1. ν”„λ‘μ‹œ μ„œλ²„κ°€ λ‹€μš΄λ˜κ±°λ‚˜ μ‘λ‹΅ν•˜μ§€ μ•ŠλŠ” 경우.
  2. ν”„λ‘μ‹œ μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ 잘λͺ»λœ μ„œλ²„λ‘œ μ „λ‹¬ν•œ 경우.
  3. κ²Œμ΄νŠΈμ›¨μ΄ μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ μ²˜λ¦¬ν•˜λŠ” 도쀑에 μ„œλ²„μ—μ„œ μœ νš¨ν•˜μ§€ μ•Šμ€ 응닡을 받은 경우.

4) 503 Serviece Unavailable (κ³ΌλΆ€ν•˜ λ˜λŠ” μ‚¬μš©λΆˆκ°€)

μ„œλ²„κ°€ ν˜„μž¬ μš”μ²­μ„ μ²˜λ¦¬ν•  수 μ—†λŠ” μƒνƒœμž„μ„ λ‚˜νƒ€λ‚΄λŠ” μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€.
이 μƒνƒœ μ½”λ“œλŠ” μ„œλ²„κ°€ μΌμ‹œμ μΈ κ³ΌλΆ€ν•˜ λ˜λŠ” μœ μ§€ 보수둜 인해 μš”μ²­μ„ μ²˜λ¦¬ν•  수 μ—†λŠ” κ²½μš°μ— 자주 μ‚¬μš©λ©λ‹ˆλ‹€.

μœ„μ˜ μƒνƒœ μ½”λ“œλŠ” λ‹€μŒκ³Ό 같은 μƒν™©μ—μ„œ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  1. μ„œλ²„ κ³ΌλΆ€ν•˜: μ„œλ²„μ— λ„ˆλ¬΄ λ§Žμ€ μš”μ²­μ΄ λ™μ‹œμ— λ°œμƒν•˜μ—¬ μ„œλ²„κ°€ μ²˜λ¦¬ν•  수 μ—†λŠ” μƒνƒœμž…λ‹ˆλ‹€.
  2. μœ μ§€ 보수: μ„œλ²„κ°€ μΌμ‹œμ μœΌλ‘œ μœ μ§€ 보수 μž‘μ—…μ„ μ§„ν–‰ν•˜μ—¬ μš”μ²­μ„ μ²˜λ¦¬ν•  수 μ—†λŠ” μƒνƒœμž…λ‹ˆλ‹€.
  3. μ„œλΉ„μŠ€ μž₯μ• : μ„œλ²„μ˜ μ„œλΉ„μŠ€κ°€ μΌμ‹œμ μœΌλ‘œ μ€‘λ‹¨λ˜μ—ˆκ±°λ‚˜ λ‹€μš΄λ˜μ–΄ μš”μ²­μ„ μ²˜λ¦¬ν•  수 μ—†λŠ” μƒνƒœμž…λ‹ˆλ‹€.

5) 504 Gateway Timeout (응닡 μ‹œκ°„ 초과)

ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„λ‘œ μš”μ²­μ„ λ³΄λƒˆμ§€λ§Œ,
κ²Œμ΄νŠΈμ›¨μ΄ μ„œλ²„κ°€ 일정 μ‹œκ°„ 내에 응닡을 λ°›μ§€ λͺ»ν•΄ μš”μ²­μ΄ μ‹œκ°„ 초과된 μƒνƒœμž„μ„ λ‚˜νƒ€λ‚΄λŠ” μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€.

μœ„ μ½”λ“œλŠ” 주둜 λ‹€μŒκ³Ό 같은 μƒν™©μ—μ„œ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  1. κ²Œμ΄νŠΈμ›¨μ΄ μ„œλ²„κ°€ μ‘λ‹΅ν•˜μ§€ μ•ŠλŠ” 경우.
  2. κ²Œμ΄νŠΈμ›¨μ΄ μ„œλ²„κ°€ μš”μ²­μ„ μ²˜λ¦¬ν•˜λŠ” 도쀑에 μ‹œκ°„μ΄ 였래 κ±Έλ¦¬λŠ” 경우.
  3. κ²Œμ΄νŠΈμ›¨μ΄ μ„œλ²„κ°€ μš”μ²­μ„ λ‹€λ₯Έ μ„œλ²„λ‘œ μ „λ‹¬ν•˜κ³ , κ·Έ μ„œλ²„κ°€ μ‘λ‹΅ν•˜μ§€ μ•ŠλŠ” 경우.

6) 508 Loop Detected (λ¬΄ν•œ 루프)

ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ—κ²Œ 보낸 μš”μ²­μ—μ„œ 루프(Loop)κ°€ λ°œμƒν•œ 것을 λ‚˜νƒ€λ‚΄λŠ” μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€.
μœ„ μ½”λ“œλŠ” μ„œλ²„κ°€ μš”μ²­ 처리 κ³Όμ •μ—μ„œ λ¬΄ν•œ 루프에 λΉ μ‘ŒμŒμ„ μ•Œλ¦¬λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€.

7) 510 Not Extended (ν™•μž₯ ν•„μš”)

μ„œλ²„κ°€ μš”μ²­λ°›μ€ HTTP μš”μ²­μ— λŒ€ν•΄ ν•„μš”ν•œ ν™•μž₯ κΈ°λŠ₯(extension)이 μ„œλ²„μ— κ΅¬ν˜„λ˜μ§€ μ•Šμ•˜μŒμ„ λ‚˜νƒ€λ‚΄λŠ” μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€.
ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­ν•œ λ™μž‘μ„ μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ 좔가적인 ν™•μž₯ κΈ°λŠ₯이 ν•„μš”ν•˜μ§€λ§Œ,
μ„œλ²„μ—λŠ” ν•΄λ‹Ή κΈ°λŠ₯이 κ΅¬ν˜„λ˜μ–΄ μžˆμ§€ μ•Šμ€ κ²½μš°μ— 이 μƒνƒœ μ½”λ“œκ°€ λ°˜ν™˜λ©λ‹ˆλ‹€.

8) 511 Network Authentication Required (λ„€νŠΈμ›Œν¬ 인증 ν•„μš”)

μš”μ²­ν•œ λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•˜κΈ° μœ„ν•΄ λ„€νŠΈμ›Œν¬ μˆ˜μ€€μ˜ 인증이 ν•„μš”ν•¨μ„ λ‚˜νƒ€λ‚΄λŠ” μƒνƒœ μ½”λ“œμž…λ‹ˆλ‹€.
μœ„ μ½”λ“œλŠ” ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­ν•œ λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•˜κΈ° μœ„ν•΄ λ„€νŠΈμ›Œν¬ 인증이 ν•„μš”ν•œ κ²½μš°μ— μ‚¬μš©λ©λ‹ˆλ‹€.


λ¬Όλ‘  μœ„μ˜ λͺ¨λ“  Status μ½”λ“œλ₯Ό μ‚¬μš©ν•΄λ³΄μ§„ μ•Šμ•˜λ‹€.

λ‚΄κ°€ 주둜 μ‚¬μš©ν•œ μ½”λ“œλ“€μ€ 200, 201, 400, 401, 403, 409, 412, 500 정도가 μžˆλ‹€.

λ‚΄κ°€ μ—λŸ¬ν•Έλ“€λ§μ„ ν†΅ν•΄μ„œ νŠΉμ • Status μ½”λ“œλ₯Ό λ°°μΆœν•  λ•Œ, 의미λ₯Ό λͺ¨λ₯΄κ³  μ“°κ³  μžˆλ‹€λŠ” κ±Έ μ•Œκ²Œλ˜μ—ˆλ‹€.

κ·Έλž˜μ„œ κ³΅λΆ€μ°¨μ›μ—μ„œ μ–΄λ–€ μ½”λ“œλ“€μ΄ μžˆλŠ”μ§€ μ‚΄νŽ΄λ³΄μ•˜κ³ , μ•žμœΌλ‘œλ„ μž‘μ—…μ„ ν•˜λ©΄μ„œ μ΄λŸ΄λ•ŒλŠ” μ–΄λ–€ μ½”λ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ μ ν•©ν• κΉŒ? λ₯Ό λ– μ˜¬λ¦¬κ²Œ λœλ‹€λ©΄ 여기에 λ“€μ–΄μ™€μ„œ μ°Έκ³ λ₯Ό 많이 ν•˜κ²Œ 될 것 κ°™λ‹€.

μ°Έκ³ λ₯Ό ν•˜λ©΄μ„œ 기얡에 λ‚¨λŠ” 뢀뢄듀은 κ·Έ λ•Œ κ·Έ λ•Œ μ˜ˆμ‹œλ‘œ ν•΄λ‹Ή μ½”λ“œ μ•„λž˜μ— μž‘μ„±ν•΄ λ‚˜κ°€λŠ” 것도 쒋은 λ°©μ•ˆμ΄λΌλŠ” 생각이 λ“ λ‹€.

#HTTP_Status_Codes #μ—λŸ¬ν•Έλ“€λ§ #μ˜ˆμ™Έμ²˜λ¦¬ #μ—λŸ¬μ½”λ“œ #μƒνƒœμ½”λ“œ

μ°Έκ³ λ¬Έμ„œ1 / μ°Έκ³ λ¬Έμ„œ2 / μ°Έκ³ λ¬Έμ„œ3 / μ°Έκ³ λ¬Έμ„œ4

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

[CS] : HTTP 와 HTTPS  (0) 2023.08.28
[HTTP] : λ©”μ„œλ“œ  (0) 2023.08.22
[HTTP] : RESTful API λž€ 무엇인지 ?  (0) 2023.07.13