IT

🏠 HTTP μƒνƒœ μ½”λ“œ μ™„λ²½ 정리: 1xx, 4xx, 5xx의 μ§„μ§œ 의미 νŒŒν—€μΉ˜κΈ° πŸ–₯

μ•ˆλ…•ν•˜μ„Έμš”! μ›Ή 개발의 κΈ°λ³Έ μ€‘μ˜ 기본인 HTTP μƒνƒœ μ½”λ“œμ— λŒ€ν•΄ 쉽고 깊이 있게 μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. 이 μ½”λ“œλŠ” μ›Ή λΈŒλΌμš°μ €(ν΄λΌμ΄μ–ΈνŠΈ)와 μ„œλ²„κ°€ μ„œλ‘œ ν†΅μ‹ ν•˜λ©° μ£Όκ³ λ°›λŠ” μ‘λ‹΅μ˜ μƒνƒœλ₯Ό λ‚˜νƒ€λ‚΄λŠ” 3자리 μˆ«μžμž…λ‹ˆλ‹€.


πŸ” HTTP μƒνƒœ μ½”λ“œλŠ” μ™œ μ€‘μš”ν• κΉŒμš”?

HTTP μƒνƒœ μ½”λ“œλŠ” μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ β€œλ‹Ήμ‹ μ΄ μš”μ²­ν•œ μž‘μ—…μ΄ μ„±κ³΅ν–ˆλŠ”μ§€, μ‹€νŒ¨ν–ˆλŠ”μ§€, ν˜Ήμ€ 좔가적인 μ‘°μΉ˜κ°€ ν•„μš”ν•œμ§€β€λ₯Ό μ•Œλ €μ£ΌλŠ” μΌμ’…μ˜ ν‘œμ§€νŒμž…λ‹ˆλ‹€. 이 μ½”λ“œλ₯Ό μ •ν™•νžˆ μ•Œλ©΄, μ—λŸ¬ λ°œμƒ μ‹œ 원인을 λΉ λ₯΄κ²Œ νŒŒμ•…ν•˜κ³  ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μƒνƒœ μ½”λ“œλŠ” 크게 5κ°€μ§€ 그룹으둜 λ‚˜λ‰˜λ©°, μ˜€λŠ˜μ€ ν—·κ°ˆλ¦¬κΈ° μ‰¬μš΄ 1xx, 4xx, 5xx 그룹에 μ§‘μ€‘ν•˜κ² μŠ΅λ‹ˆλ‹€.


1. πŸ“’ 1xx: 정보 제곡 (Informational Response)

  • 의미: ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ΄ μˆ˜μ‹ λ˜μ—ˆκ³ , μ„œλ²„κ°€ μš”μ²­μ„ 계속 처리 μ€‘μž„μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
  • νŠΉμ§•: μ΅œμ’…μ μΈ 응닡이 μ•„λ‹ˆλ©°, 응닡 헀더와 빈 라인만 ν¬ν•¨ν•˜κ³  λ³Έλ¬Έ(Body)은 ν¬ν•¨ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • λ”₯ν•˜κ²Œ: 이 μ½”λ“œλŠ” ν΄λΌμ΄μ–ΈνŠΈκ°€ λŒ€μš©λŸ‰ 데이터λ₯Ό λ³΄λ‚΄κ±°λ‚˜, μš”μ²­μ„ μ‹œμž‘ν•˜κΈ° 전에 νŠΉμ • 헀더λ₯Ό 확인해야 ν•  λ•Œ 주둜 μ‚¬μš©λ©λ‹ˆλ‹€. 연결이 λŠκΈ°μ§€ μ•Šκ³  계속 μ§„ν–‰λ˜κ³  μžˆλ‹€λŠ” μ‹ ν˜Έμž…λ‹ˆλ‹€.
  • μ£Όμš” μ½”λ“œ:
    • 100 Continue (계속):
      • ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­ 헀더λ₯Ό 보낸 ν›„, μ„œλ²„λ‘œλΆ€ν„° β€œκ³„μ† 보내도 μ’‹λ‹€β€λŠ” 확인을 받은 경우. 보톡 Expect: 100-continue 헀더λ₯Ό ν¬ν•¨ν•œ μš”μ²­μ— λŒ€ν•œ μ‘λ‹΅μž…λ‹ˆλ‹€.
    • 101 Switching Protocols (ν”„λ‘œν† μ½œ μ „ν™˜):
      • μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ— 따라 ν”„λ‘œν† μ½œμ„ λ³€κ²½ν•  κ²ƒμž„μ„ μ•Œλ €μ€λ‹ˆλ‹€ (예: HTTPμ—μ„œ WebSocket으둜 μ „ν™˜ν•  λ•Œ).

2. ❌ 4xx: ν΄λΌμ΄μ–ΈνŠΈ 였λ₯˜ (Client Error)

  • 의미: μš”μ²­ μžμ²΄μ— λ¬Έμ œκ°€ μžˆμ–΄ μ„œλ²„κ°€ μš”μ²­μ„ μ²˜λ¦¬ν•  수 μ—†μŒμ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 즉, **ν΄λΌμ΄μ–ΈνŠΈ(λΈŒλΌμš°μ €, μ‚¬μš©μž)**의 잘λͺ»μž…λ‹ˆλ‹€.
  • νŠΉμ§•: μ„œλ²„λŠ” μš”μ²­μ„ λ°›μ•˜μ§€λ§Œ, μš”μ²­μ˜ ν˜•μ‹, 문법, κΆŒν•œ 등에 λ¬Έμ œκ°€ μžˆμ–΄ 처리λ₯Ό κ±°λΆ€ν•©λ‹ˆλ‹€.
  • λ”₯ν•˜κ²Œ: 이 그룹의 μ½”λ“œκ°€ λ°œμƒν•˜λ©΄, κ°œλ°œμžλŠ” 주둜 μš”μ²­ URL, μš”μ²­ λ³Έλ¬Έ(Payload), 인증/κΆŒν•œ 헀더 등을 점검해야 ν•©λ‹ˆλ‹€.
  • μ£Όμš” μ½”λ“œ:
    • 400 Bad Request (잘λͺ»λœ μš”μ²­):
      • μš”μ²­μ˜ 문법이 잘λͺ»λ˜μ—ˆκ±°λ‚˜, μœ νš¨ν•˜μ§€ μ•Šμ€ 데이터가 ν¬ν•¨λ˜μ—ˆμ„ λ•Œ λ°œμƒν•©λ‹ˆλ‹€. (예: ν•„μˆ˜ νŒŒλΌλ―Έν„°κ°€ λˆ„λ½λ˜μ—ˆκ±°λ‚˜, 데이터 ν˜•μ‹μ΄ 잘λͺ»λœ 경우)
    • 401 Unauthorized (μΈμ¦λ˜μ§€ μ•ŠμŒ):
      • μš”μ²­μ— μœ νš¨ν•œ 인증 자격 증λͺ… (둜그인 정보 λ“±)이 λΆ€μ‘±ν•˜κ±°λ‚˜ μ—†λŠ” 경우.
      • 🚨 주의: β€œμΈμ¦(Authentication)” μ‹€νŒ¨λ₯Ό μ˜λ―Έν•˜λ©°, β€œμΈκ°€(Authorization)” μ‹€νŒ¨λŠ” 보톡 403을 μ‚¬μš©ν•©λ‹ˆλ‹€.
    • 403 Forbidden (κΈˆμ§€λ¨):
      • ν΄λΌμ΄μ–ΈνŠΈκ°€ 인증은 λ˜μ—ˆμ§€λ§Œ, ν•΄λ‹Ή λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•  **κΆŒν•œ(인가)**이 μ—†λŠ” 경우. (예: 일반 μ‚¬μš©μžκ°€ κ΄€λ¦¬μž νŽ˜μ΄μ§€μ— μ ‘κ·Ό μ‹œλ„)
    • 404 Not Found (찾을 수 μ—†μŒ):
      • κ°€μž₯ ν”ν•œ μ—λŸ¬! ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­ν•œ **λ¦¬μ†ŒμŠ€(URL)**λ₯Ό μ„œλ²„μ—μ„œ 찾을 수 μ—†λŠ” 경우. (νŽ˜μ΄μ§€ 이동, 파일 μ‚­μ œ λ“±μœΌλ‘œ 인해 URL이 μœ νš¨ν•˜μ§€ μ•Šμ„ λ•Œ)
    • 405 Method Not Allowed (ν—ˆμš©λ˜μ§€ μ•Šμ€ λ©”μ„œλ“œ):
      • μš”μ²­λœ λ¦¬μ†ŒμŠ€μ— λŒ€ν•΄ μ‚¬μš©λœ HTTP λ©”μ„œλ“œ (GET, POST, PUT, DELETE λ“±)κ°€ ν—ˆμš©λ˜μ§€ μ•Šμ€ 경우. (예: 읽기 μ „μš© κ²Œμ‹œνŒμ— POST μš”μ²­μ„ μ‹œλ„ν–ˆμ„ λ•Œ)
    • 429 Too Many Requests (λ„ˆλ¬΄ λ§Žμ€ μš”μ²­):
      • ν΄λΌμ΄μ–ΈνŠΈκ°€ μ§€μ •λœ μ‹œκ°„ 내에 λ„ˆλ¬΄ λ§Žμ€ μš”μ²­μ„ λ³΄λƒˆμ„ λ•Œ. **Rate Limiting (μš”μ²­ 속도 μ œν•œ)**을 μ΄ˆκ³Όν–ˆμ„ λ•Œ 주둜 μ‚¬μš©λ©λ‹ˆλ‹€.

3. πŸ’£ 5xx: μ„œλ²„ 였λ₯˜ (Server Error)

  • 의미: ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ€ μœ νš¨ν–ˆμ§€λ§Œ, μ„œλ²„κ°€ μš”μ²­μ„ μ²˜λ¦¬ν•˜λŠ” κ³Όμ •μ—μ„œ 내뢀적인 λ¬Έμ œκ°€ λ°œμƒν–ˆμŒμ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
  • νŠΉμ§•: 이 μ½”λ“œκ°€ λ°œμƒν•˜λ©΄, ν΄λΌμ΄μ–ΈνŠΈμ˜ 잘λͺ»μ΄ μ•„λ‹ˆλ―€λ‘œ μ„œλ²„ κ°œλ°œμžκ°€ μ½”λ“œλ₯Ό μ κ²€ν•˜κ³  μˆ˜μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • λ”₯ν•˜κ²Œ: 5xx μ½”λ“œλŠ” λ°μ΄ν„°λ² μ΄μŠ€ 접속 μ‹€νŒ¨, μ„œλ²„ λ©”λͺ¨λ¦¬ λΆ€μ‘±, λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 처리 쀑 μ˜ˆμ™Έ λ°œμƒ λ“± μ„œλ²„ λ‚΄λΆ€μ˜ λŸ°νƒ€μž„ μ—λŸ¬λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.
  • μ£Όμš” μ½”λ“œ:
    • 500 Internal Server Error (λ‚΄λΆ€ μ„œλ²„ 였λ₯˜):
      • μ„œλ²„μ—μ„œ μ˜ˆμƒμΉ˜ λͺ»ν•œ 상황이 λ°œμƒν•˜μ—¬ μš”μ²­μ„ μ²˜λ¦¬ν•  수 μ—†λŠ” 경우. κ°€μž₯ 일반적이고 포괄적인 μ„œλ²„ μ—λŸ¬ μ½”λ“œμž…λ‹ˆλ‹€.
    • 502 Bad Gateway (잘λͺ»λœ κ²Œμ΄νŠΈμ›¨μ΄):
      • μš”μ²­μ„ μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ μ„œλ²„κ°€ μ ‘κ·Όν•œ μƒμœ„ μ„œλ²„/κ²Œμ΄νŠΈμ›¨μ΄λ‘œλΆ€ν„° μœ νš¨ν•˜μ§€ μ•Šμ€ 응닡을 받은 경우. (주둜 ν”„λ‘μ‹œ μ„œλ²„, λ‘œλ“œ λ°ΈλŸ°μ„œ λ“±μ—μ„œ λ°œμƒ)
    • 503 Service Unavailable (μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•  수 μ—†μŒ):
      • μ„œλ²„κ°€ μΌμ‹œμ μœΌλ‘œ κ³ΌλΆ€ν•˜ λ˜λŠ” 점검 μ€‘μ΄μ–΄μ„œ μš”μ²­μ„ μ²˜λ¦¬ν•  수 μ—†λŠ” 경우. 보톡 Retry-After 헀더λ₯Ό 톡해 μ„œλΉ„μŠ€ 재개 μ‹œκ°„μ„ μ•Œλ €μ€λ‹ˆλ‹€.
    • 504 Gateway Timeout (κ²Œμ΄νŠΈμ›¨μ΄ μ‹œκ°„ 초과):
      • κ²Œμ΄νŠΈμ›¨μ΄ μ„œλ²„κ°€ μƒμœ„ μ„œλ²„λ‘œλΆ€ν„° μ •ν•΄μ§„ μ‹œκ°„ 내에 응닡을 λ°›μ§€ λͺ»ν–ˆμ„ λ•Œ λ°œμƒν•©λ‹ˆλ‹€. (502와 μœ μ‚¬ν•˜λ‚˜, μ‹œκ°„ μ΄ˆκ³Όκ°€ 원인)

πŸ“Š 마무리: μƒνƒœ μ½”λ“œ μš”μ•½ 및 λŒ€μ‘ μ „λž΅

κ·Έλ£Ήλ²”μœ„μ˜λ―Έμ±…μž„ μ†Œμž¬λŒ€μ‘ μ „λž΅
1xx100-199정보 제곡 (μ§„ν–‰ 쀑)μ„œλ²„/ν΄λΌμ΄μ–ΈνŠΈ ν˜‘μ˜μ΅œμ’… 응닡 λŒ€κΈ°
2xx200-299성곡해당 μ—†μŒμ •μƒ 처리 (κ°€μž₯ μ’‹μŒ)
3xx300-399λ¦¬λ‹€μ΄λ ‰μ…˜ (λ‹€λ₯Έ 곳으둜 이동)μ„œλ²„λ¦¬λ‹€μ΄λ ‰νŠΈλœ URL둜 μž¬μš”μ²­
4xx400-499ν΄λΌμ΄μ–ΈνŠΈ 였λ₯˜ν΄λΌμ΄μ–ΈνŠΈμš”μ²­ 데이터, URL, κΆŒν•œ 확인 및 μˆ˜μ •
5xx500-599μ„œλ²„ 였λ₯˜μ„œλ²„μ„œλ²„ 둜그 뢄석 및 μ½”λ“œ μˆ˜μ •

HTTP μƒνƒœ μ½”λ“œλŠ” μ›Ήμ˜ μ–Έμ–΄μž…λ‹ˆλ‹€. 이 μ½”λ“œλ₯Ό μ΄ν•΄ν•˜λŠ” 것은 개발자뿐만 μ•„λ‹ˆλΌ μ›Ή μ„œλΉ„μŠ€λ₯Ό μ΄μš©ν•˜λŠ” λͺ¨λ“  μ΄μ—κ²Œ 큰 도움이 λ©λ‹ˆλ‹€!

infodori1234

Recent Posts

πŸ–₯ NetBIOS over TCP IP NBT μ™„μ „ κ°€μ΄λ“œ

둜컬 λ„€νŠΈμ›Œν¬ ν™˜κ²½μ„ μ‘°κΈˆμ΄λΌλ„ 닀뀄본 μ‚¬λžŒμ΄λΌλ©΄ ν•œ λ²ˆμ―€μ€ λ§ˆμ£ΌμΉ˜λŠ” μ΅μˆ™ν•œ 단어가 μžˆμŠ΅λ‹ˆλ‹€. λ°”λ‘œ NetBIOS와 NBTμž…λ‹ˆλ‹€.…

2κ°œμ›” ago

🏠 JSON Schema: 데이터 μœ νš¨μ„± κ²€μ¦μ˜ ν‘œμ€€ 섀계도 πŸ–₯

μ•ˆλ…•ν•˜μ„Έμš”! ν˜„λŒ€ μ›Ή κ°œλ°œμ—μ„œ 데이터 κ΅ν™˜μ˜ 핡심인 JSON(JavaScript Object Notation)을 λ”μš± κ°•λ ₯ν•˜κ³  μ•ˆμ •μ μœΌλ‘œ λ§Œλ“€μ–΄μ£ΌλŠ” 도ꡬ,…

2κ°œμ›” ago

🏠 ECMAScript 3 ν˜Έν™˜μ„± μ™„μ „ 정리 κ°€μ΄λ“œ

❌ ECMAScript 3(E3)λž€ λ¬΄μ—‡μΌκΉŒ ECMAScript 3λŠ” 1999년에 κ³΅μ‹ν™”λœ μžλ°”μŠ€ν¬λ¦½νŠΈ ν‘œμ€€μ΄λ‹€. μ§€κΈˆ 보면 였래된 기술 κ°™μ§€λ§Œ,…

2κ°œμ›” ago

πŸ–₯ CoffeeScript μ™„μ „ κ°€μ΄λ“œ

CoffeeScriptλŠ” ν•œλ•Œ ν”„λ‘ νŠΈμ—”λ“œ 개발 μƒνƒœκ³„μ—μ„œ 맀우 인기 μžˆμ—ˆλ˜ μ–Έμ–΄μ˜€κ³ , μ§€κΈˆλ„ νŠΉμ • ν”„λ‘œμ νŠΈλ‚˜ λ ˆκ±°μ‹œ μ‹œμŠ€ν…œ, κ°„κ²°ν•œ…

2κ°œμ›” ago

🏠 λ©”λͺ¨λ¦¬ λˆ„μˆ˜(Memory Leak) μ‰½κ²Œ μ΄ν•΄ν•˜κΈ°: πŸ–₯ λ‚­λΉ„λ˜λŠ” μ»΄ν“¨ν„°μ˜ κΈ°μ–΅λ ₯ ❌

ν˜„λŒ€μ μΈ ν”„λ‘œκ·Έλž˜λ° ν™˜κ²½μ—μ„œ λ©”λͺ¨λ¦¬ λˆ„μˆ˜(Memory Leak)λŠ” μ—¬μ „νžˆ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ„±λŠ₯ μ €ν•˜μ™€ μΆ©λŒμ„ μΌμœΌν‚€λŠ” μ£Όμš” 원인 쀑…

2κ°œμ›” ago

πŸ–₯️ λΈŒλΌμš°μ € λ Œλ”λ§ κ³Όμ • (CRP) : μ›ΉνŽ˜μ΄μ§€κ°€ λˆˆμ•žμ— λ‚˜νƒ€λ‚˜κΈ°κΉŒμ§€μ˜ λ§ˆλ²•

(Critical Rendering Path, 핡심 λ Œλ”λ§ 경둜 μ™„λ²½ 이해) μ›Ή λΈŒλΌμš°μ €μ— μ£Όμ†Œλ₯Ό μž…λ ₯ν•˜κ³  μ—”ν„°λ₯Ό λˆ„λ₯΄λŠ” μˆœκ°„,…

3κ°œμ›” ago