본문으로 건너뛰기

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

    클라이언트가 네트워크에 접근하기 위해 인증이 필요함을 의미합니다.