[참고] HTTP 상태 코드(Status)

박은서's avatar
Jan 29, 2026
[참고] HTTP 상태 코드(Status)

1. HTTP 상태 코드(Status)

0️⃣ HTTP 상태 코드의 구조

  • 3자리 숫자
  • 첫 번째 숫자가 **상태 코드의 범주(Class)**를 나타냄
범위
의미
1xx
정보 응답 (Informational)
2xx
성공 (Success)
3xx
리다이렉션 (Redirection)
4xx
클라이언트 오류 (Client Error)
5xx
서버 오류 (Server Error)

1️⃣ 1xx: 정보 응답 (Informational)

요청이 수신되었고 처리 중임을 알림 (실무에서는 거의 직접 다루지 않음)
  • 100 Continue
    • → 요청의 첫 부분을 받았으며 계속 전송해도 됨

2️⃣ 2xx: 성공 (Success)

요청이 정상적으로 처리됨
  • 200 OK
    • → 가장 일반적인 성공 응답
  • 201 Created
    • → 요청 성공 + 새로운 리소스 생성됨 (POST 후 자주 사용)
  • 204 No Content
    • → 성공했지만 응답 본문 없음 (DELETE, PUT 후 자주 사용)

3️⃣ 3xx: 리다이렉션 (Redirection)

요청한 리소스가 다른 위치로 이동
  • 301 Moved Permanently
    • → 영구적으로 URL 변경 (SEO 중요)
  • 302 Found
    • → 일시적인 이동
  • 304 Not Modified
    • → 캐시된 리소스를 사용해도 됨

4️⃣ 4xx: 클라이언트 오류 (Client Error)

요청 자체에 문제가 있음
  • 400 Bad Request
    • → 요청 문법 오류, 잘못된 파라미터
  • 401 Unauthorized
    • → 인증 필요 (로그인 필요)
  • 403 Forbidden
    • → 권한 없음 (로그인해도 접근 불가)
  • 404 Not Found
    • → 요청한 리소스가 존재하지 않음
  • 409 Conflict
    • → 리소스 상태 충돌 (중복 데이터 등)

5️⃣ 5xx: 서버 오류 (Server Error)

요청은 정상이나 서버가 처리하지 못함
  • 500 Internal Server Error
    • → 서버 내부 오류 (가장 포괄적)
  • 502 Bad Gateway
    • → 게이트웨이/프록시 서버 오류
  • 503 Service Unavailable
    • → 서버 과부하 또는 점검 중
  • 504 Gateway Timeout
    • → 상위 서버 응답 시간 초과

6️⃣ 실무에서 중요한 포인트

  1. 2xx라도 항상 성공은 아님
    1. → 응답 바디에 에러 메시지가 있는 경우도 있음
  1. 401 vs 403 차이
      • 401: 인증 안 됨
      • 403: 인증은 됐지만 권한 없음
  1. 에러 처리 로직은 상태 코드 기준으로 작성
  1. REST API 설계 시 상태 코드 의미를 정확히 지켜야 함

7️⃣ 그림으로 이해하기

notion image
Share article