Network

Network - HTTP 상태코드 정리(Status Code)

j9m 2022. 10. 5. 15:24
반응형

HTTP 상태코드

  • HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 여부를 나타낸다. 
  • 응답은 5가지 클래스로 그룹화된다.

 

① 정보 응답(100~199)

코드 설명
100 Continue 이 중간 응답은 클라이언트가 요청을 계속하거나 요청이 이미 완료된 경우 응답을 무시해야 함을 나타냅니다.
101 Switching 이 코드는 Upgrade 클라이언트의 요청 헤더에 대한 응답으로 전송되며 서버가 전환하는 프로토콜을 나타냅니다.
102
Processing( WebDAV )
이 코드는 서버가 요청을 수신하여 처리 중이지만 아직 사용할 수 있는 응답이 없음을 나타냅니다.
103 Early Hints 이 상태 코드는 주로 Link헤더와 함께 사용되어 서버가 응답을 준비하는 동안 사용자 에이전트가 리소스를 미리 로드 할 수 있도록 합니다.

 

② 성공적인 응답 (200~299)

코드 설명
200 OK 요청이 성공했습니다. "성공"의 결과 의미는 HTTP 메서드에 따라 다릅니다.
  • GET: 메시지 본문에서 리소스를 가져와서 전송했습니다.
  • HEAD: 표현 헤더는 메시지 본문 없이 응답에 포함됩니다.
  • PUT또는 POST: 작업의 결과를 설명하는 리소스가 메시지 본문에서 전송됩니다.
  • TRACE: 메시지 본문에는 서버에서 수신한 요청 메시지가 포함됩니다.
201 Created 요청이 성공했으며 결과적으로 새 리소스가 생성되었습니다. 이것은 일반적으로 POST요청 또는 일부 PUT요청 후에 전송되는 응답입니다.
202 Accepted 이 응답 코드는 반환된 메타데이터가 원본 서버에서 사용 가능한 것과 정확히 동일하지 않지만 로컬 또는 타사 복사본에서 수집됨을 의미합니다. 이것은 주로 다른 리소스의 미러 또는 백업에 사용됩니다. 특정한 경우를 제외하고는 200 OK이 상태보다 응답이 우선입니다.
203
Non-Authoritative Information
이 응답 코드는 반환된 메타데이터가 원본 서버에서 사용 가능한 것과 정확히 동일하지 않지만 로컬 또는 타사 복사본에서 수집됨을 의미합니다. 이것은 주로 다른 리소스의 미러 또는 백업에 사용됩니다. 특정한 경우를 제외하고는 200 OK이 상태보다 응답이 우선입니다.
204 No Content 이 요청에 대해 보낼 콘텐츠가 없지만 헤더가 유용할 수 있습니다. 사용자 에이전트는 이 리소스에 대한 캐시된 헤더를 새 헤더로 업데이트할 수 있습니다.
205 Reset Content 이 요청을 보낸 문서를 재설정하도록 사용자 에이전트에 지시합니다.
206 Partial Content 이 응답 코드는 Range리소스의 일부만 요청하기 위해 클라이언트에서 헤더를 보낼 때 사용됩니다.
207
Multi-Status( WebDAV )
여러 상태 코드가 적절할 수 있는 상황에 대해 여러 리소스에 대한 정보를 전달합니다.
208
Already Reported( WebDAV )
<dav:propstat>동일한 컬렉션에 대한 여러 바인딩의 내부 멤버를 반복적으로 열거하는 것을 피하기 위해 응답 요소 내부에서 사용됩니다 .
226
IM Used( HTTP 델타 인코딩 )
서버는 GET리소스에 대한 요청을 수행했으며 응답은 현재 인스턴스에 적용된 하나 이상의 인스턴스 조작 결과를 나타냅니다.

 

③ 리디렉션 메시지(300~399)

코드 설명
300 Multiple Choices 요청에 가능한 응답이 두 개 이상 있습니다. 사용자 에이전트 또는 사용자는 그 중 하나를 선택해야 합니다. (응답 중 하나를 선택하는 표준화된 방법은 없지만 사용자가 선택할 수 있도록 가능성에 대한 HTML 링크가 권장됩니다.)
301 Moved Permanently 요청한 리소스의 URL이 영구적으로 변경되었습니다. 새 URL이 응답에 제공됩니다.
302 Found 이 응답 코드는 요청한 리소스의 URI가 일시적 으로 변경되었음을 의미합니다 . 앞으로 URI가 추가로 변경될 수 있습니다. 따라서 클라이언트는 향후 요청에서 이 동일한 URI를 사용해야 합니다.
303 See Other 서버는 클라이언트가 GET 요청으로 다른 URI에서 요청된 리소스를 가져오도록 지시하기 위해 이 응답을 보냈습니다.
304 Not Modified 이것은 캐싱 목적으로 사용됩니다. 클라이언트에게 응답이 수정되지 않았음을 알리므로 클라이언트는 캐시된 동일한 버전의 응답을 계속 사용할 수 있습니다.
305 Use Proxy 요청된 응답이 프록시에 의해 액세스되어야 함을 나타내기 위해 HTTP 사양의 이전 버전에서 정의되었습니다. 프록시의 대역 내 구성과 관련된 보안 문제로 인해 더 이상 사용되지 않습니다.
306 unused 이 응답 코드는 더 이상 사용되지 않습니다. 그것은 단지 예약되어 있습니다. 이전 버전의 HTTP/1.1 사양에서 사용되었습니다.
307 Temporary Redirect 서버는 이 응답을 전송하여 클라이언트가 이전 요청에서 사용된 것과 동일한 방법으로 다른 URI에서 요청된 리소스를 가져오도록 지시합니다. 이것은 사용자 에이전트가 사용된 HTTP 메소드를 변경 해서는302 Found 안 된다는 점을 제외하고 HTTP 응답 코드와 동일한 의미를 갖습니다 . a가 첫 번째 요청에서 사용된 경우 두 번째 요청에서 a 를 사용해야 합니다. POSTPOST
308 Permanent Redirect
이는 리소스가 이제 Location:HTTP 응답 헤더로 지정된 다른 URI에 영구적으로 위치한다는 것을 의미합니다. 이것은 사용자 에이전트가 사용된 HTTP 메소드를 변경 해서는301 Moved Permanently 안 된다는 점을 제외하고 HTTP 응답 코드와 동일한 의미를 갖습니다 . a가 첫 번째 요청에서 사용된 경우 두 번째 요청에서 a 를 사용해야 합니다. POSTPOST

 

④ 클라이언트 오류 응답(400~499)

코드 설명
400 Bad Reques 서버는 클라이언트 오류(예: 잘못된 요청 구문, 잘못된 요청 메시지 프레이밍 또는 사기성 요청 라우팅)로 인식되는 것으로 인해 요청을 처리할 수 없거나 처리하지 않습니다.
401 Unauthorized HTTP 표준이 "인증되지 않음"을 지정하지만 의미상 이 응답은 "인증되지 않음"을 의미합니다. 즉, 클라이언트는 요청된 응답을 얻기 위해 자신을 인증해야 합니다.
402 Payment Required  실험적이 응답 코드는 향후 사용을 위해 예약되어 있습니다. 이 코드를 만드는 초기 목표는 디지털 결제 시스템에 사용하는 것이지만 이 상태 코드는 매우 드물게 사용되며 표준 규칙이 없습니다.
403 Forbidden 클라이언트는 콘텐츠에 대한 액세스 권한이 없습니다. 즉, 권한이 없으므로 서버가 요청된 리소스를 제공하는 것을 거부합니다. 와 달리 401 Unauthorized클라이언트의 ID는 서버에 알려져 있습니다.
404 Not Found 서버가 요청한 리소스를 찾을 수 없습니다. 브라우저에서 이는 URL이 인식되지 않음을 의미합니다. API에서 이는 엔드포인트가 유효하지만 리소스 자체가 존재하지 않음을 의미할 수도 있습니다. 403 Forbidden서버는 권한이 없는 클라이언트로부터 리소스의 존재를 숨기는 대신 이 응답을 보낼 수도 있습니다 . 이 응답 코드는 웹에서 자주 발생하기 때문에 아마도 가장 잘 알려져 있을 것입니다.
405 Method Not Allowed 요청 방법은 서버에서 알고 있지만 대상 리소스에서 지원하지 않습니다. 예를 들어 API는 DELETE리소스 제거를 위한 호출을 허용하지 않을 수 있습니다.
406 Not Acceptable 이 응답은 웹 서버가 서버 기반 콘텐츠 협상 을 수행한 후 사용자 에이전트가 제공한 기준에 맞는 콘텐츠를 찾지 못할 때 전송됩니다.
407
Proxy Authentication Required
이는 유사 401 Unauthorized하지만 프록시에서 인증을 수행해야 합니다.
408 Request Timeout 이 응답은 클라이언트의 이전 요청이 없더라도 일부 서버의 유휴 연결에서 전송됩니다. 이는 서버가 이 사용되지 않는 연결을 종료하려고 함을 의미합니다. 이 응답은 Chrome, Firefox 27+ 또는 IE9와 같은 일부 브라우저가 HTTP 사전 연결 메커니즘을 사용하여 서핑 속도를 높이기 때문에 훨씬 더 많이 사용됩니다. 또한 일부 서버는 이 메시지를 보내지 않고 연결을 종료합니다.
409 Conflict 이 응답은 요청이 서버의 현재 상태와 충돌할 때 전송됩니다.
410 Gone 이 응답은 요청된 콘텐츠가 전달 주소 없이 서버에서 영구적으로 삭제되었을 때 전송됩니다. 클라이언트는 캐시와 리소스 링크를 제거해야 합니다. HTTP 사양은 이 상태 코드가 "한정된 프로모션 서비스"에 사용되도록 의도하고 있습니다. API는 이 상태 코드로 삭제된 리소스를 나타내도록 강요되어서는 안 됩니다.
411 Length Required Content-Length헤더 필드가 정의되어 있지 않고 서버 에서 요구하기 때문에 서버에서 요청을 거부 했습니다.
412 Precondition Failed 클라이언트가 헤더에 서버가 충족하지 않는 전제 조건을 표시했습니다.
413 Payload Too Large 요청 엔터티가 서버에서 정의한 제한보다 큽니다. 서버가 연결을 닫거나 Retry-After헤더 필드를 반환할 수 있습니다.
414 URI Too Long 클라이언트가 요청한 URI가 서버가 해석할 수 있는 것보다 깁니다.
415 Unsupported Media Type 요청한 데이터의 미디어 형식이 서버에서 지원되지 않아 서버가 요청을 거부하고 있습니다.
416 Range Not Satisfiable 요청 의 헤더 필드에 지정된 범위 Range를 충족할 수 없습니다. 범위가 대상 URI의 데이터 크기를 벗어날 수 있습니다.
417 Expectation Failed Expect이 응답 코드는 요청 헤더 필드 에 표시된 기대치를 서버에서 충족할 수 없음을 의미합니다.
418 I'm a teapot 서버가 찻주전자로 커피를 내리려는 시도를 거부합니다.
421 Misdirected Request 요청이 응답을 생성할 수 없는 서버로 전달되었습니다. 이것은 요청 URI에 포함된 체계와 권한의 조합에 대한 응답을 생성하도록 구성되지 않은 서버에서 보낼 수 있습니다.
422
Unprocessable Entity
WebDAV )
요청의 형식이 적절했지만 의미 오류로 인해 따를 수 없었습니다.
423 LockedWebDAV ) 액세스 중인 리소스가 잠겨 있습니다.
424
Failed Dependency
WebDAV )
이전 요청의 실패로 인해 요청이 실패했습니다.
425 Too Early  실험적서버가 재생될 수 있는 요청을 처리하는 위험을 감수하지 않음을 나타냅니다.
426 Upgrade Required 서버는 현재 프로토콜을 사용하여 요청을 수행하는 것을 거부하지만 클라이언트가 다른 프로토콜로 업그레이드한 후에 기꺼이 수행할 수 있습니다. 서버는 Upgrade필요한 프로토콜을 나타내기 위해 426 응답으로 헤더를 보냅니다.
428 Precondition Required 원본 서버는 조건부 요청을 요구합니다. 이 응답은 제3자가 서버의 상태를 수정하여 충돌을 일으키는 동안 클라이언트 GETsa 리소스의 상태를 수정하고 서버로 다시 보내는 '업데이트 손실' 문제를 방지하기 위한 것 입니다.PUT
429 Too Many Requests 사용자가 주어진 시간 동안 너무 많은 요청을 보냈습니다("속도 제한").
431 Request Header Fields Too Large 헤더 필드가 너무 커서 서버가 요청을 처리하지 않습니다. 요청 헤더 필드의 크기를 줄인 후 요청을 다시 제출할 수 있습니다.
451 Unavailable For Legal Reasons 사용자 에이전트는 정부에서 검열한 웹 페이지와 같이 법적으로 제공할 수 없는 리소스를 요청했습니다.

 

⑤ 서버 오류 응답(500~599)

코드 설명
500 Internal Server Error 서버가 처리 방법을 모르는 상황에 직면했습니다.
501 Not Implemented 요청 방법은 서버에서 지원하지 않으며 처리할 수 없습니다. 서버가 지원해야 하는 유일한 메서드(따라서 이 코드를 반환하지 않아야 함)는 GET및 HEAD입니다.
502 Bad Gateway 이 오류 응답은 서버가 요청을 처리하는 데 필요한 응답을 얻기 위해 게이트웨이로 작동하는 동안 잘못된 응답을 받았음을 의미합니다.
503 Service Unavailable 서버가 요청을 처리할 준비가 되지 않았습니다. 일반적인 원인은 유지 관리를 위해 다운되거나 과부하된 서버입니다. 이 응답과 함께 문제를 설명하는 사용자 친화적인 페이지를 보내야 합니다. 이 응답은 임시 조건에 Retry-After사용해야 하며 HTTP 헤더에는 가능한 경우 서비스 복구 전 예상 시간이 포함되어야 합니다. 이러한 임시 조건 응답은 일반적으로 캐시되지 않아야 하므로 웹마스터는 이 응답과 함께 전송되는 캐싱 관련 헤더에 대해서도 주의를 기울여야 합니다.
504 Gateway Timeout 이 오류 응답은 서버가 게이트웨이 역할을 하고 제 시간에 응답을 받을 수 없을 때 제공됩니다.
505 HTTP Version Not Supported 요청에 사용된 HTTP 버전은 서버에서 지원하지 않습니다.
506 Variant Also Negotiates 서버에 내부 구성 오류가 있습니다. 선택한 변형 리소스가 투명한 콘텐츠 협상 자체에 참여하도록 구성되어 있으므로 협상 프로세스의 적절한 끝점이 아닙니다.
507
Insufficient Storage( WebDAV )
서버가 요청을 성공적으로 완료하는 데 필요한 표현을 저장할 수 없기 때문에 리소스에서 메서드를 수행할 수 없습니다.
508
Loop Detected( WebDAV )
서버가 요청을 처리하는 동안 무한 루프를 감지했습니다.
510 Not Extended 서버가 이를 수행하려면 요청에 대한 추가 확장이 필요합니다.
511 Network Authentication Required 클라이언트가 네트워크 액세스 권한을 얻기 위해 인증해야 함을 나타냅니다.

 

참고자료
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
반응형