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️⃣ 실무에서 중요한 포인트
- 2xx라도 항상 성공은 아님
→ 응답 바디에 에러 메시지가 있는 경우도 있음
- 401 vs 403 차이
- 401: 인증 안 됨
- 403: 인증은 됐지만 권한 없음
- 에러 처리 로직은 상태 코드 기준으로 작성
- REST API 설계 시 상태 코드 의미를 정확히 지켜야 함
7️⃣ 그림으로 이해하기

Share article