클라이언트가 HTTP 메서드 중 하나로 서버에 어떤 요청을 보내면 서버는 이 요청에 대한 응답 결과를 상태 코드와 함께 전달한다. 예를 들어 네이버에서 특정 버튼을 클릭해 요청을 보낸 후 General 헤더 정보를 보면 상태 코드가 함께 전달된 것을 확인할 수 있다.
상태 코드는 HTTP 요청에 대한 응답 결과를 나타낸다.
개발자는 상태 코드를 보고 요청이 성공했는지 혹은 실패했는지 판단하고 처리한다.
상태코드는 5개 그룹으로 나뉜다.
| 그룹 | 상태 코드 | 설명 |
|---|---|---|
| 1xx | 정보 응답 | 요청에 대한 처리가 진행 중 |
| 2xx | 성공 응답 | 요청에 대한 응답을 성공적으로 완료 |
| 3xx | 리다이렉션 메시지 | 요청을 완료하기 위해 리다이랙션(새 URL로 재요청)이 필요하다는 의미 |
| 4xx | 클라이언트 오류 응답 | 요청을 처리하던 중 클라이언트 오류 발생 |
| 5xx | 서버 오류 응답 | 클라이언트의 요청을 받았으나 적절히 처리하지 못해 응답할 수 없다는 의미 |
1xx → 거의 사용하지 않음.
200 OK : 요청 성공
201 Created : 요청 성공해서 새로운 리소스 생성됨. 일반적으로 POST 요청 또는 일부 PUT 요청 이후
202 Accepted : 요청을 수신하였지만 처리가 완료되지 않았음.
204 No Content : 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음
300 Multiple Choices
301 Moved Permanently : 리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음
302 Found : 리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음(MAY)
303 See Other : 302와 기능은 같음. 리다이렉트시 요청 메서드가 GET으로 변경
304 Not Modified
307 Temporary Redirect : 리다이렉트시 요청 메서드와 본문 유지(요청 메서드를 변경하면 안 된다. MUST NOT)
308 Permanent Redirect : 301과 기능은 같음. 리다이렉트시 요청 메서드와 본문 유지(처음 POST를 보내면 리다이렉트도 POST 유지)
400 Bad Request : 클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 수 없음
401 Unauthorized : 클라이언트가 해당 리소스에 대한 인증이 필요
403 Forbidden : 서버가 요청을 이해했지만 승인 거부
404 Not Found : 요청 리소스를 찾을 수 없음
500 Internal Server Error : 서버 문제로 오류 발생, 애매하면 500 오류
503 Service Unavailable : 서비스 이용 불가
참고