HTTP 상태 코드 유형
와탭 URL 모니터링을 통해 웹 서비스의 장애 여부를 확인할 수 있습니다. 웹 서비스에서 반환되는 상태 코드가 4xx, 5xx일 경우 경고 알림을 발송합니다. 이러한 상태 코드는 HTTP 상태 코드(HTTP Status Code)라고 불립니다. 대표적인 예로 "404 Not Found"가 있습니다.
상태 코드는 3자리 숫자로 구성되며, 첫 번째 자리는 1부터 5까지입니다. 첫 번째 자리가 4 또는 5인 경우는 정상적인 상황이 아니므로 사이트 관리자가 즉시 인지해야 합니다.
-
1xx(정보): 요청을 받았으며, 프로세스를 계속 진행 중입니다.
-
2xx(성공): 요청이 성공적으로 접수, 인식, 처리되었습니다.
-
3xx(리다이렉션): 요청을 완료하려면 추가 작업이 필요합니다.
-
4xx(클라이언트 오류): 요청의 문법이 잘못되었거나 요청을 처리할 수 없습니다.
-
5xx(서버 오류): 서버가 유효한 요청을 처리하는 데 실패했습니다.
HTTP 상태 코드에 대한 자세한 내용은 다음 링크를 참고하세요.
1XX(Information responses)
상태 코드가 '1'로 시작하는 경우는 서버가 요청을 받았으며, 서버에 연결된 클라이언트가 작업을 계속 진행해야 함을 의미합니다. 해당 코드는 HTTP 1.0에서 지원되지 않습니다.
-
100 Continue
진행 중임을 의미하는 응답 코드입니다. 현재까지의 진행 상태에 문제가 없으며, 클라이언트가 요청을 계속하거나 이미 요청을 완료한 경우에는 무시해도 된다는 것을 알려줍니다.
-
101 Switching Protocol
101 응답 코드는 클라이언트가 보낸 업그레이드 요청 헤더에 대한 응답으로 보내집니다. 이 코드는 서버가 클라이언트의 Upgrade 요청을 받아들여 프로토콜을 변경할 것임을 알립니다. 주로 WebSocket 프 로토콜 전환 시 사용됩니다.
-
102 Processing(WebDAV)
이 응답 코드는 서버가 요청을 수신하고 처리 중이지만, 아직 최종 응답을 제공할 수 없음을 의미합니다.
2XX(Successful responses)
-
200 OK
요청이 성공적으로 처리되었습니다. 요청에 대한 응답으로 정보가 반환됩니다.
-
201 Created
요청이 성공적으로 처리되었으며, 그 결과로 새로운 리소스가 생성되었습니다. 이 응답은 주로 POST 요청이나 일부 PUT 요청 이후에 사용됩니다.
-
202 Accepted
요청이 수신되었으나 아직 처리되지 않았습니다. 이 응답은 요청 처리가 비동기적으로 이루어지고 이후 HTTP 응답을 통해 결과가 전달될 수 있음을 명시하지 않습니다. 다른 프로세스가 요청을 처리 중이거나, 서버가 요청을 배치 프로세스로 처리 중일 때 사용됩니다.
-
203 Non-Authoritative Information
반환된 메타 정보가 오리진 서버의 것이 아니며, 로컬 또는 서드 파티 복사본에서 수집되었음을 의미합니다. 이러한 경우 200 OK 응답이 우선되어야 합니다.
-
204 No Content
요청을 성공적으로 처리했지만 반환할 콘텐츠가 없습니다. 그러나 헤더는 유효할 수 있으며, 사용자 에이전트는 캐시된 헤더를 최신 정보로 업데이트할 수 있습니다.
-
205 Reset Content
요청이 완료된 후 사용자 에이 전트가 요청을 보낸 문서 뷰를 리셋해야 함을 의미합니다.
-
206 Partial Content 클라이언트가 범위 헤더를 통해 부분 콘텐츠를 요청했을 때 사용됩니다. 웹 서버는 '206 Partial Content' 응답 코드와 함께 Range 헤더에 명시된 데이터 부분을 전송합니다.
-
207 Multi-Status
멀티 상태 응답은 여러 리소스의 여러 상태 코드를 포함하는 상황에서 사용됩니다. WebDAV(Web Distributed Authoring and Vesioning)에서 주로 사용됩니다.
-
208 Already Reported
Prostat(Property와 Status의 합성어) 응답 속성으로 동일한 컬렉션에 바인딩된 여러 내부 멤버를 반복적으로 나열하는 것을 피하기 위해 사용됩니다. WebDAV(Web Distributed Authoring and Vesioning)에서 사용됩니다.
-
226 IM Used (HTTP Delta encoding)
서버가 GET 요청을 처리했으며 응답이 하나 이상의 인스턴스 조작이 적용된 현재 인스턴스를 포함하고 있음을 알립니다.
3XX(Redirection messages)
-
300 Multiple Choice
요청에 대해서 하나 이상의 응답이 가능함을 의미합니다. 사용자 에이전트 또는 사용자는 그중 하나를 선택해야 합니다. 표준화된 응답 선택 방법은 없습니다.
-
301 Moved Permanently
요청한 리소스의 URI가 영구적으로 변경되었음을 의미합니다. 새로운 URI가 응답에 제공될 수도 있습니다.
-
302 Found
요청한 리소스의 URI 가 일시적으로 변경되었음을 의미합니다. 새 URI는 나중에 제공될 수 있으며, 클라이언트는 이후 요청에서도 반드시 동일한 URI를 사용해야 합니다.
-
303 See Other
서버가 클라이언트에게 요청한 리소스를 다른 URI에서 GET 요청을 통해 얻도록 지시합니다.
-
304 Not Modified
캐시 목적으로 사용됩니다. 클라이언트에게 응답이 수정되지 않았음을 알리며, 클라이언트는 캐시된 버전을 계속 사용할 수 있습니다.
-
305 Use Proxy
이전 HTTP 사양에서 정의되었으며, 요청한 응답이 반드시 프록시를 통해 접속해야 함을 알립니다. 프록시의 in-band 설정에 대한 보안 우려로 인해 점차 사용이 줄고 있습니다.
-
306 Unused
현재는 사용되지 않으며 추후 사용을 위해 예약된 상태입니다. HTTP 1.1 이전 버전에서 사용되었습니다.
-
307 Temporary Redirect
클라이언트가 요청한 리소스가 다른 URI에 있으며, 이전 요청과 동일한 메소드를 사용해 요청해야 함을 의미합니다. 302 Found와 비슷하지만, 307 Temporary Redirect의 경우 사용된 HTTP 메소드를 변경하지 말아야 합니다. 첫 요청이 POST라면 두 번째 요청도 POST로 해야 합니다.
-
308 Permanent Redirect
리소스가 영구적으로 다른 URI에 위치함을 의미합니다. 301 Moved Permanently와 유사하지만, 308 Permanent Redirect의 경우 사용된 HTTP 메소드를 변경하지 말아야 합니다. 첫 요청이 POST라면 두 번째 요청도 POST로 해야 합니다.
4XX(Client error responses)
-
400 Bad Request
이 응답은 요청의 문법이 잘못되어 서버가 요청을 이해할 수 없음을 의미합니다.
-
401 Unauthorized
HTTP 표준에서는 '미승인(unauthorized)'를 명확히 하고 있지만, 실제로 이 응답은 '비인증(unauthenticated)'를 의미합니다. 요청한 응답을 받기 위해 클라이언트는 반드시 인증을 해야 합니다.
-
402 Payment Required
이 응답 코드는 나중에 사용될 것을 대비해 예약되었습니다. 디지털 결제 시스템에 사용하기 위한 것이지만 현재는 사용되고 있지 않습니다.
-
403 Forbidden
클라이언트는 콘텐츠에 접근할 권한이 없습니다. 서버는 요청을 거부하기 위한 적절한 응답을 보냅니다. 401 Unauthorized와 다른 점은 서버가 클라이언트를 인식하고 있다는 것입니다.
-
404 Not Found
서버가 요청한 리소스를 찾을 수 없습니다. 브라우저에서는 알려지지 않은 URL을 의미합니다. API에서는 종점이 적절하지만 리소스가 존재하지 않음을 나타낼 수 있습니다. 서버는 인증되지 않은 클라이언트로부터 리소스를 숨기기 위해 이 응답을 403 대신 보낼 수도 있습니다. 이 응답 코드는 웹에서 가장 널리 알려져 있습니다.
-
405 Method Not Allowed
요청한 메소드는 서버에서 알고 있지만, 사용이 금지되어 있습니다. 예를 들어 특정 API에서 리소스를 삭제하는 것이 금지될 수 있습니다. 필수 메소드인 GET과 HEAD는 제거될 수 없으며, 이 에 러 코드를 반환할 수 없습니다.
-
406 Not Acceptable
서버가 사용자 에이전트가 지정한 규격에 맞는 콘텐츠를 찾지 못했을 때 이 응답을 보냅니다.
-
407 Proxy Authentication Required
이 응답은 401 Unauthorized와 유사하지만 프록시 인증이 필요함을 의미합니다.
-
408 Request Timeout
서버가 유휴 상태의 연결을 종료하고자 할 때 이 응답을 전송합니다. Chrome, Firefox 27+, 또는 IE 9와 같은 일부 브라우저는 HTTP 사전 연결 메커니즘을 사용하여 이 응답을 받을 수 있습니다. 일부 서버는 이 메시지를 보내지 않고 연결을 끊을 수도 있습니다.
-
409 Conflict
요청이 현재 서버의 상태와 충돌할 때 이 응답을 보냅니다.
-
410 Gone
요청한 콘텐츠가 서버에서 영구적으로 삭제되었고 더 이상 사용할 수 없을 때 이 응답을 보냅니다. 클라이언트는 캐시와 리소스에 대한 링크를 제거해야 합니다.
-
411 Length Required
Content-Length 헤더 필드가 정의되지 않은 요청을 서버가 거부합니다.
-
412 Precondition Failed
클라이언트의 헤더에 있는 전제조건이 서버의 전제조건과 일치하지 않을 때 이 응답을 보냅니다.
-
413 Payload Too Large
요청 엔티티가 서버에서 정의한 한계를 초과합니다. 서버는 연결을 끊거나 Retry-After 헤더 필드를 포함하여 응답할 수 있습니다.
-
414 URI Too Long
클라이언트가 요청한 URI가 서버에서 처리할 수 있는 길이를 초과합니다.
-
415 Unsupported Media Type
요청한 미디어 형 식이 서버에서 지원되지 않아 서버가 해당 요청을 거부합니다.
-
416 Requested Range Not Satisfiable
Range 헤더 필드에 요청한 범위를 만족시킬 수 없습니다. 요청한 범위가 대상 URI의 데이터 크기를 벗어났을 가능성이 있습니다.
-
417 Expectation Failed
이 응답은 Expect 요청 헤더 필드의 요구사항이 서버에서 충족되지 않을 때 보냅니다.
-
418 I'm a teapot
서버는 커피를 찻 주전자에 끓이는 것을 거절합니다. HTCPCP 프로토콜 상태 코드 중 하나입니다.
-
421 Misdirected Request
서버로 유도된 요청은 응답을 생성할 수 없습니다. 이것은 서버에서 요청 URI와 연결된 스킴과 권한을 구성하여 응답을 생성할 수 없을 때 보내집니다.
-
422 Unprocessable Entity (WebDAV)
요청은 이상이 없으나 문법 오류로 인하여 따를 수 없습니다.
-
423 Locked (WebDAV)
요청한 리소스가 잠겨 있어 접근할 수 없습니다.
-
424 Failed Dependency (WebDAV)
이전 요청이 실패하여 현재 요청도 실패했습니다.
-
426 Upgrade Required
서버가 현재 프로토콜을 사용하여 요청을 처리하지 않지만, 클라이언트가 다른 프로토콜로 업그레이드하면 처리할 수 있습니다. 서버는 필요한 프로토콜을 Upgrade 헤더에 포함하여 응답합니다.
-
428 Precondition Required
서버는 요청이 조건적이어야 합니다. 이는 클라이언트가 리소스를 GET한 후 수정하고, PUT으로 서버에 되돌리는 동안 서드파티에 의해 서버의 상태가 변경되는 '업데이트 상실'을 방지하기 위함입니다.
-
429 Too Many Requests
사용자가 지정된 시간 내에 너무 많은 요청을 보냈음을 의미합니다. ("rate limiting")
-
431 Request Header Fields Too Large
요청한 헤더 필드가 너무 커서 서버가 요청을 처리할 수 없습니다. 요청을 줄여서 다시 보내야 합니다.
-
451 Unavailable For Legal Reasons
요청한 리소스가 정부에 의해 검열된 웹페이지 등 불법적인 것임을 나타냅니다.
5XX(Server error responses)
-
500 Internal Server Error
서버에 문제가 있지만 정확한 문제를 명확히 설명할 수 없음을 의미합니다.
-
501 Not Implemented
서버가 요청을 이행하는 데 필요한 기능을 지원하지 않음을 의미합니다.
-
502 Bad Gateway
서버가 게이트웨이로부터 잘못된 응답을 수신했음을 의미합니다. 인터넷상의 서버가 다른 서버로부터 유효하지 않은 응답을 받은 경우 발생합니다.
-
503 Service Unavailable
서버가 요청을 처리할 준비가 되지 않았음을 의미합니다. 이는 주로 서버의 유지보수 중이거나 과부하가 걸렸을 때 발생합니다. 이 응답과 함께 사용자 친화적인 페이지를 제공해야 하며, 가능한 경우 Retry-After 헤더에 서비스 복구 예상 시간을 포함해야 합니다.
-
504 Gateway Timeout
서버가 게이트웨이 역할을 하면서 적시에 응답을 받지 못했음 을 의미합니다. 이는 주로 서버 간의 네트워크 문제로 인해 발생합니다.
-
505 HTTP Version Not Supported
서버에서 지원하지 않는 HTTP 버전을 클라이언트가 요청했음을 의미합니다. 대부분의 웹 브라우저는 서버가 HTTP 1.x 버전을 지원한다고 가정합니다. 최신 버전의 프로토콜을 사용하지 않는 것은 보안 및 성능상의 이유로 권장되지 않습니다.
-
506 Variant Also Negotiates
서버에 내부 구성 오류가 발생하여 요청에 대한 투명한 콘텐츠 협상이 순환 참조로 이어질 때 발생합니다.
-
507 Insufficient Storage
서버가 요청을 저장할 충분한 공간을 가지고 있지 않을 때 발생합니다. 이는 주로 WebDAV에서 발생합니다.
-
508 Loop Detected (WebDAV)
서버가 요청을 처리하는 동안 무한 루프를 감지했을 때 발생합니다.
-
510 Not Extended
서버가 요청을 이행하기 위해 추가 확장이 필요할 때 발생합니다.
-
511 Network Authentication Required
클라이언트가 네트워크에 접근하기 위해 인증이 필요함을 의미합니다.