특정 HTTP 요청이 성공적으로 완료되었는지를 알려주는 응답 코드
상태 코드의 첫 번째 숫자에 따라 크게 5가지로 분류
분류 | 설명 |
---|---|
1xx (Informational) | 조건부 응답 |
2xx (Successful) | 성공 |
3xx (Redirection) | 리다이렉션 완료 |
4xx (Client Error) | 요청 오류 |
5xx (Server Error) | 서버 오류 |
Request received, continuing process
요청이 수신되어 처리 중을 의미 (빈도 적음)
상태 코드 | 상태 | 설명 |
---|---|---|
100 | Continue | 지금까지의 상태가 괜찮으며 클라이언트가 계속해서 요청을 하거나 이미 요청을 완료한 경우에는 무시해도 됨을 알림 |
The action was successfully received, understood, and accepted
요청을 정상적으로 처리했음을 의미
상태 코드 | 상태 | 설명 |
---|---|---|
200 | OK | 요청이 성공적으로 수행되었음을 의미하며 주로 GET 요청에 대한 응답 |
201 | Created | 요청이 성공적으로 수행되어 새로운 리소스가 생성됨을 의미하며 주로 POST 요청에 대한 응답 |
202 | Accepted | 요청이 접수됐지만 처리는 완료되지 않음을 의미하며 배치 처리와 같이 요청 접수 후 일정 시간이 지난 후 요청을 처리하는 경우의 응답 |
203 | Non-Authoritative Information | 요청이 성공적이었으나, 요청에 대한 검증이 되지 않음을 의미 |
204 | No Content | 요청이 성공적으로 수행되었고, 응답 payload에 보낼 데이터가 없음을 의미하며 주로 DELETE 요청에 대한 응답에 사용 |
205 | Reset Content | 서버가 요청을 성공적으로 처리했지만 콘텐츠를 표시하지 않았음을 의미하며 클라이언트가 콘텐츠를 재설정할 것을 요구 |
206 | Partial Conent | 서버가 GET 요청의 일부만 성공적으로 처리했음을 의미 |
Further action must be taken in order to complete the request
요청 완료를 위해 추가 작업 조치가 필요함을 의미 주로 리다이렉트에 많이 사용
해당 응답을 받으면 브라우저는 HTTP 헤더에 들어있는 Location 필드를 찾고, 해당 필드가 존재할 경우 Location 필드에 담긴 URL로 자동으로 리다이렉트
상태 코드 | 상태 | 설명 |
---|---|---|
300 | Multiple Choices | 요청에 대해 하나 이상의 리소스가 존재함을 의미 |
301 | Moved Permanently | 요청한 리소스의 URI가 변경되었음을 의미 |
302 | Found | 요청한 리소스의 URI가 일시적으로 변경되었음을 의미 |
303 | See Other | 요청한 리소스를 다른 URI에서 GET 요청을 통해 얻어야 할 때의 응답 |
304 | Not Modified | 리소스가 수정되지 않음을 의미하며 해당 응답을 받으면, 클라이언트는 서버로부터 리소스를 재전송 받지 않고, 캐싱된 리소스를 사용 |
307 | Temporary Redirect | 302와 유사하며, 클라이언트는 HTTP 메서드를 유지한채 요청을 재송신할 필요가 있음을 의미 |
308 | Permanent Redirect | 301과 유사하며, HTTP 응답 헤더의 Location에 명시된 영구히 다른 UIR에 위치하고 있음을 의미하며, 클라이언트는 HTTP 메서드를 유지한채 요청을 재송신할 필요가 있음을 의미 |
The request contains bad syntax or cannot be fulfilled
클라이언트 오류(잘못된 문법 등)로 인해 서버가 요청을 처리할 수 없음을 의미
상태 코드 | 상태 | 설명 |
---|---|---|
400 | Bad Request | 잘못된 문법 등으로 인해 클라이언트가 올바르지 못한 요청을 보내 서버가 요청을 이해할 수 없음을 의미 |
401 | Unauthorized | 인증되지 않은 사용자가 인증이 필요한 리소스를 요청하는 경우의 응답으로 로그인이 필요한 API를 비로그인 사용자가 호출했을 때 사용 |
403 | Forbidden | 클라이언트가 콘텐츠에 접근할 권한을 가지고 있지 않음을 의미하며 401과 다르게 서버가 클라이언트가 누구인지 알고 있고 보통 특정 IP나 국가가 차단되어 있는 사이트에 접속을 시도한 경우 사용 |
404 | Not Found | 요청한 리소스가 존재하지 않음을 의미하며 인증되지 않은 클라이언트로부터 리소스를 숨기기 위해 403 대신 이 응답을 전송하기도 함 |
405 | Method Not Allowed | 현재 리소스에 맞지 않는 메서드를 사용했음을 의미하며 예로는 GET 요청만 허용되는데 POST 요청을 한 경우의 응답 |
406 | No Acceptable | 알맞은 컨텐츠 타입이 없음을 의미하며 서버의 리소스가 클라이언트의 HTTP 헤더에 들어있는 Accept 필드에 명시된 콘텐츠 타입이 아닌 경우의 응답 |
408 | Request Timeout | 요청에 응답하는 시간이 너무 오래 걸림을 의미 |
409 | Conflict | 요청이 현재 서버의 상태와 충돌될 때의 응답 |
412 | Precondition Failed | 서버가 요청자가 요청 시 부과한 사전조건을 만족하지 않을 때의 응답 |
413 | Payload Too Large | 요청이 너무 커서 서버가 처리할 수 없을 때의 응답 |
429 | Too many Requests | 클라이언트가 지정된 시간에 너무 많은 요청을 보낸 경우의 응답 |
The server failed to fulfill an apparently valid request
서버 오류로 인해 서버가 정상 요청을 처리하지 못함을 의미합니다.
상태 코드 | 요약 | 설명 |
---|---|---|
500 | Internal Server Error | 서버에 오류가 발생하여 응답할 수 없음을 의미하며 서버에 오류가 발생했으나 처리 방법을 알 수 없을 경우의 응답 |
501 | Not Implemented | 클라이언트 요청에 대한 서버의 응답 수행 기능이 없음을 의미 |
502 | Bad Gateway | 서버가 게이트웨이로부터 잘못된 응답을 수신했음을 의미하며 서버의 부모 서버에서 오류가 발생한 경우의 응답으로, 보통 서버에 접속하는 사용자가 많아 과부하될 때 발생 |
503 | Service Unavailable | 서버가 요청을 처리할 준비가 되지 않음을 의미하며 일반적으로 유지보수를 위해 작동이 중단되거나 과부하가 걸린 경우의 응답 |
504 | Gateway Timeout | 서버가 게이트웨이 역할을 하고 있으며, 한 서버가 액세스하고 있는 다른 서버에서 적시에 응답을 받지 못했음을 의미 |