상태코드(Status Code)란?
상태코드(Status Code)는 클라이언트(웹 브라우저, 앱 등)가 서버에 HTTP 요청을 보냈을 때, 서버가 그 요청을 어떻게 처리했는지 숫자로 알려주는 응답 코드입니다.
이 코드는 항상 3자리 숫자(예: 200, 404, 500 등)로 구성되며, 요청의 성공·실패 여부와 그 원인을 빠르게 파악할 수 있도록 도와줍니다.
상태코드의 분류
상태코드는 첫 번째 숫자에 따라 5가지 그룹으로 나뉩니다:
| 그룹 | 의미 | 대표 코드 및 설명 |
|---|
| 1xx | 정보(Informational) | 100 Continue: 요청을 계속 진행하라는 의미 |
| 2xx | 성공(Successful) | 200 OK: 요청 성공, 201 Created: 생성됨 |
| 3xx | 리다이렉션(Redirection) | 301 Moved Permanently: 영구 이동 |
| 4xx | 클라이언트 오류(Client Error) | 400 Bad Request: 잘못된 요청, 404 Not Found: 존재하지 않는 페이지 |
| 5xx | 서버 오류(Server Error) | 500 Internal Server Error: 서버 내부 오류, 503 Service Unavailable: 서비스 불가 |
대표적인 상태코드 예시
- 200 OK: 요청이 정상적으로 처리됨 (가장 많이 보는 성공 코드)
- 201 Created: 요청이 성공적으로 처리되어 리소스가 새로 생성됨
- 301 Moved Permanently: 요청한 리소스가 영구적으로 다른 위치로 이동
- 400 Bad Request: 잘못된 문법 등으로 서버가 요청을 이해할 수 없음
- 401 Unauthorized: 인증이 필요하거나 인증 실패
- 403 Forbidden: 서버가 요청을 이해했지만 권한 부족 등으로 거부
- 404 Not Found: 요청한 리소스(페이지 등)를 찾을 수 없음
- 500 Internal Server Error: 서버 내부 오류로 요청 처리 실패
- 502 Bad Gateway: 게이트웨이/프록시 서버가 잘못된 응답을 받음
- 503 Service Unavailable: 서버가 일시적으로 요청을 처리할 수 없음 (과부하, 점검 등)
상태코드는 어디에 쓰이나?
- API 개발: 클라이언트가 요청 결과를 쉽게 판단하고, 적절한 후속 조치를 할 수 있도록 상태코드를 확인합니다.
- 웹 개발: 페이지 이동, 오류 처리, 인증 등 다양한 상황에서 상태코드로 흐름을 제어합니다.
- 디버깅: 문제 발생 시 상태코드를 통해 원인을 빠르게 파악할 수 있습니다.
참고 팁
- 상태코드는 응답의 첫 줄(상태 표시줄)에 위치하며, 간단한 이유 문구(예: 404 Not Found)와 함께 제공됩니다.
- RESTful API, 웹사이트, 모바일 앱 등 거의 모든 HTTP 기반 시스템에서 사용됩니다.
즉, 상태코드는 서버가 클라이언트의 요청을 어떻게 처리했는지 3자리 숫자로 알려주는 신호이며, API와 웹 개발에서 필수적으로 이해해야 하는 기본 개념입니다.