-
서론
이 글은 단순히 HTTP 응답 코드를 나열한 내용입니다.
또한 몇가지 응답 코드들이 빠져있으므로 찾는 내용이 없다면 다른 페이지에서 찾는 것을 추천드립니다.
1XX코드
상태코드 설명 100 계속 중간 응답. 요청의 초기 부분이 수신되었지만 아직 서버에서 거부되지 않았음을 클라이언트에 나타낸다. 101 스위칭 프로토콜 클라이언트에서 업그레이드 요청 헤더에 응답하여 전송되며, 서버가 전환 중인 프로토콜을 나타낸다. 102 처리 서버가 요청을 수신하여 처리 중이지만 아직 응답을 사용할 수 없음을 나타낸다. 103 초기 힌트 주로 링크 헤더와 함께 사용된다. 서버가 최종 응답을 준비하는 동안 사용자 에이전트가 리소스를 미리 로드하는 것이 좋다 2XX코드
200(OK)
REST API가 클라이언트가 요청한 모든 작업을 성공적으로 수행했으며 2xx 시리즈의 특정 코드가 더 이상 적합하지 않음을 나타낸다
200 응답에는 응답 본문이 포함되어야 한다
GET 요청된 리소스에 해당하는 개체가 응답으로 전송된다201(Created) 생성됨
REST API는 리소스가 컬렉션 내부에 생성될 때마다 201 상태 코드로 응답한다
새로 생성된 리소스는 응답 개체에 반환된 URI에서 참조할 수 있으며 Location 헤더 필드에 지정된 리소스에 대해 가장 구체적인 URI를 사용할 수 있다
생성 작업을 즉시 수행할 수 없는 경우 서버는 대신 202(승인됨) 응답으로 응답해야 한다202(Accepted) 허용됨
202 응답은 일반적으로 처리하는데 오랜 시간이 걸리는 작업에 사용된다.
요청이 처리를 위해 수락되었지만 처리가 완료되지 않았음을 나타낸다. 요청은 결국 처리되거나 처리되지 않을 수 있으며 처리가 발생할 때 허용되지 않을 수도 있다.203 Non-Authoritative Information 신뢰할 수 없는 정보
204(No Content) 콘텐츠 없음
204 상태 코드는 REST API가 응답 메시지 본문에 있는 상태 메시지 또는 표현을 다시 전송하지 않을 때 일반적으로 PUT, POST 또는 DELETE 요청에 응답하여 전송한다.
API는 GET 요청과 함께 204를 전송하여 요청된 리소스가 존재하지만 본문에 포함할 상태 표시가 없음을 나타낼 수도 있다.
204 응답은 메시지 본문을 포함하지 않아야 하므로 항상 헤더 필드 뒤에 있는 첫 번째 빈 줄에 의해 종료됩니다.3XX코드
300 Multiple Choices 다중 선택
301(Moved Permanently) 영구 이동
301 상태 코드는 REST API의 리소스 모델이 크게 재설계되었으며 클라이언트가 요청한 리소스에 새로운 영구 URI가 할당되었음을 나타낸다. REST API는 응답의 위치 헤더에 새 URI를 지정해야 하며, 이후 모든 요청은 지정된 URI로 전달되어야 한다.이전 API를 유지하면서 새로운 API를 위해 항상 API 버전 관리를 사용할 수 있기 때문에 API에서는 이 응답 코드를 거의 사용하지 않는다.
302(Found) 발견됨
302는 URL 리디렉션을 수행하는 일반적인 방법입니다. 이 상태 코드의 HTTP 응답은 위치 헤더 필드에 URL을 추가로 제공합니다.303 (See Other) 기타 참조
303 응답은 컨트롤러 리소스가 작업을 마쳤음을 나타내지만 잠재적으로 원하지 않는 응답 본문을 보내는 대신 클라이언트에게 응답 리소스의 URI를 보냅니다. 응답은 임시 상태 메시지의 URI이거나 이미 존재하는 보다 영구적인 일부 리소스에 대한 URI일 수 있습니다.304 (Not Modified) 수정되지 않음
이 상태 코드는 응답 본문이 비어 있어야 한다는 점에서 204(내용 없음)와 유사합니다. 중요한 구분은 본문에서 보낼 항목이 없을 때 204가 사용되는 반면, 요청 헤더 If-Modified-Since 또는 If-None-Match에서 지정한 버전 이후 리소스가 수정되지 않은 경우 304가 사용됩니다.307 (Temporary Redirect) 임시 리디렉션
307 응답은 REST API가 클라이언트의 요청을 처리하지 않을 것임을 나타냅니다. 대신 클라이언트는 응답 메시지의 위치 헤더로 지정된 URI에 요청을 다시 제출해야 합니다. 그러나 향후 요청에도 원래의 URI를 사용해야 한다.4XX코드
400 (Bad Request) 잘못된 요청
400은 다른 4xx 오류 코드가 적절하지 않은 경우 사용되는 일반적인 클라이언트 측 오류 상태입니다. 오류는 잘못된 형식의 요청 구문, 잘못된 요청 메시지 매개 변수 또는 기만적인 요청 라우팅 등과 같을 수 있습니다.401(Unauthorized) 승인되지 않음
401 오류 응답은 클라이언트가 적절한 권한을 제공하지 않고 보호된 리소스에서 작업을 시도했음을 나타냅니다. 잘못된 자격 증명을 제공했거나 전혀 제공하지 않았을 수 있습니다.403(Forbidden) 금지
403 오류 응답은 클라이언트의 요청이 올바르게 형성되었음을 나타내지만 REST API는 요청을 준수하기를 거부합니다. 즉, 사용자에게 리소스에 필요한 권한이 없습니다. 403 응답은 클라이언트 자격 증명이 불충분한 경우가 아닙니다. 즉, 401("인증되지 않음")입니다.404 (Not Found) 찾을 수 없음
404 오류 상태 코드는 REST API가 클라이언트의 URI를 리소스에 매핑할 수 없지만 나중에 사용할 수 있음을 나타냅니다. 클라이언트의 후속 요청이 허용됩니다.405 (Method Not Allowed) 허용되지 않은 메서드
API가 405 오류와 함께 응답하여 클라이언트가 리소스가 허용하지 않는 HTTP 메서드를 사용하려고 시도했음을 나타냅니다. 예를 들어 읽기 전용 리소스는 GET 및 HEAD만 지원할 수 있는 반면 컨트롤러 리소스는 GET 및 POST를 허용하지만 PUT 또는 DELETE는 지원하지 않습니다.406 (Not Acceptable) 허용되지 않음
406 오류 응답은 API가 수락 요청 헤더에 표시된 대로 클라이언트의 기본 미디어 유형을 생성할 수 없음을 나타냅니다. 예를 들어 API가 데이터를 Application/json으로만 포맷하려는 경우 application/xml로 포맷된 데이터에 대한 클라이언트 요청에 406 응답이 수신됩니다.412(Precondition Failed) 전제 조건 실패
412 오류 응답은 클라이언트가 요청 헤더에 하나 이상의 전제 조건을 지정했음을 나타내며, 특정 조건이 충족될 경우에만 요청을 수행하도록 REST API에 효과적으로 지시합니다. 412 응답은 해당 조건이 충족되지 않았음을 나타내므로 요청을 수행하는 대신 API가 이 상태 코드를 전송합니다.415 (Unsupported Media Type) 지원되지 않는 미디어 유형
415 오류 응답은 API가 Content-Type 요청 헤더에 표시된 대로 클라이언트의 제공된 미디어 유형을 처리할 수 없음을 나타냅니다. 예를 들어 API가 application/json으로 포맷된 데이터만 처리하려는 경우 application/xml로 포맷된 데이터를 포함한 클라이언트 요청에 415의 응답이 수신됩니다.
5XX코드
500 (Internal Server Error) 내부 서버 오류
500은 일반 REST API 오류 응답입니다. 대부분의 웹 프레임워크는 예외를 발생시키는 일부 요청 처리기 코드를 실행할 때마다 이 응답 상태 코드로 자동 응답합니다.
500 오류는 결코 클라이언트의 오류가 아니므로 클라이언트가 이 응답을 트리거한 동일한 요청을 다시 시도하고 다른 응답을 얻기를 바라는 것이 합리적입니다.501 (Not Implemented) 구현되지 않음
서버가 요청 방법을 인식하지 못하거나 요청을 수행할 수 없습니다. 일반적으로 이는 향후 가용성(예: 웹 서비스 API의 새로운 기능)을 의미합니다.참고
https://restfulapi.net/http-status-codes/