ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • HTTP Status Code - HTTP 응답 상태 코드 정리
    Security 2022. 5. 13. 16:57

    HTTP Status Error : 404

    HTTP의 응답 코드는 5개의 클래스로 구분됩니다.

    상태 코드의 첫 번째 숫자는 응답의 클래스를 정의하며, 뒤의 두 자리는 분류의 역할을 하지 않습니다.

     

    1XX (Information responses) : 요청을 받았으며 프로세스를 계속합니다.

    : 굵게 강조된 것은 자주 보이는 오류를 표시합니다.

    100 Continue(계속) : 요청자는 요청을 계속해야합니다. 서버는 이 코드를 제공하여 요청의 첫 번째 부분을 받았으며 나머지를 기다리고 있음을 나타냅니다.

    101 Switching Protocols : 요청자가 서버에 프로토콜 전환을 요청했으며 서버는 이를 승인하는 중입니다.

    - HTTP/1.0이후 한동안 쓰이지 않았었는데 최근 WebSocket 등에서 사용되고 있습니다.

    102 Processing : 사용자가 수신요청을 하여 처리하고는 있지만 아직은 제대로 된 응답을 할 수 없는 상태임을 응답하는코드입니다. WebDAV 전용.

    103 Early Hints : Link헤더와 함께 사용되며 주로 서버가 응답을 준비하는 동안 사용자가 사전로딩(PreLoading)을 할 수 있도록 하는 응답코드.

    - HTTP/1.0이후 한동안 쓰이지 않았었는데 페이지 로드 속도를 빠르게 하기 위해서 다시 쓰이기 시작했습니다.

     

    2XX (Successful responses) : 요청을 성공적으로 받았으며 인식했고 수용하였습니다.

    : 굵게 강조된 것은 자주 보이는 오류를 표시합니다.

    200 Success(성공) : 서버가 요청을 제대로 처리했다는 뜻, 이는 주로 서버가 요청한 페이지를 제공했다는 의미로 쓰입니다.

    201 Creted(작성됨) : 성공적으로 요청되었으며 서버가 새 리소스를 작성했습니다.

    202 Accepted(허용됨) : 요청이 받아들여졌지만 처리되지 않았음을 의미합니다.

    203 Non-Authoriative Information(신뢰할 수 없는 정보) : 서버가 요청을 성공적으로 처리했지만 콘텐츠를 제공하지 않습니다.

    보통 200코드가 203코드가 우선적으로 응답합니다.

    204 No Content(콘텐츠 없음) : 서버가 요청을 성공적으로 처리했찌만 콘텐츠를 제공하지 않습니다.

    205 Reset Content(콘텐츠 재설정) : 서버가 요청을 성공적으로 처리했지만 콘텐츠를 제공하지 않습니다.

    204와 달리 요청자가 문서 보기를 재설정할 것을 요구합니다.

    206 Partial Content(일부 콘텐츠) : 서버가 GET 요청의 일부만 성공적으로 처리했습니다. 보통 클라이언트에서 시작 범위나 다운로드할 범위를 지정한 경우 자동으로 해당 부분만 제공할 때 사용하는 코드.

    207 Multi-Status(다중 상태) : 여러 소스에서 여러 응답인 상태에서 적절한 정보를 사용자한테 제공할수 있또록 하는 응답 코드. WebDAV 전용.

    208 Already Reported(이미 보고됨) : DAB 바인딩 멤버는 이미 응답의 앞 부분에 열거되어 있으며 다시 포함되지 않는다는 의미로 응답하는 응답코드. WebDAB 전용.

    226 IM Used : 서버가 사용자의 GET 요청에 대한 리소스의 의무는 다했고, 현재 인스턴스에서 적용된 하나 이상의 인스턴스 조작 결과를 보낼 때 사용되는 코드입니다. HTTP Delta Encoding 전용.

     

    3XX (Redirection) : 요청 완료를 위해 추가 작업 조치(리다이렉션이 이루어져야 함)가 필요합니다.

    300 Muiltiple Choices(복수 응답) : 서버가 요청에 따라 여러 조치를 선택할 수 있습니다.

    301 Moved Permanently(영구 이동) : 요청한 페이지를 새 위치로 영구적으로 이동했습니다. GET, HEAD 요청에 대한 응답으로 이 응답을 표시하면 요청자가 자동으로 새 위치로 전달됩니다.

    302 Found(임시 이동) : 현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 요청자는 향후 요청 시 원래 위치를 계속 사용해야 합니다.

    303 See Other(기타 위치 보기) : 요청자가 다른 위치에 별도의 GET 요청을 하여 응답을 검색할 경우 서버는 이 코드를 표시합니다. HEAD 요청 이외의 모든 요청을 다른 위치로 자동으로 전달합니다.

    304 Not Modified(수정되지 않음) :  마지막 요청 이후 요청한 페이지는 수정되지 않았습니다. 서버가 이 응답을 표시하면 페이지의 콘텐츠를 표시하지 않습니다. 요청자가 마지막으로 페이지를 요청한 후 페이지가 변경되지 않으면 이 응답을 표시하도록 서버를 구성해야 합니다.

    305 Use Proxy(프록시 사용) : 요청자는 프록시를 사용하여 요청한 페이지만 액세스할 수 있습니다. 서버가 이 응답을 표시하면 요청자가 사용할 프록시를 가리키는 것이기도 합니다.

    306 unused(미사용) : 초기 HTTP/1.1 까지만 해도 Switch Proxy 요청으로 다음 요청시 지정한 프록시 서버를 사용하라는 응답 코드로 초안이 각성되었으나 정작 사용이 되지 않았고 305 Use Proxy 응답이 사용중지(Deprecated)되어 문서에서 삭제, 예약코드로 있습니다.

    307 Temporary Redirect(임시 리다이렉션) : 302와 동일하게 일시적인 컨텐츠 이동을 나타낼때 사용되나, HTTP 메소드의 변경을 허용하지 않습니다.

    308 Permanent Redirect(영구 리다이렉션) : 301과 동일하게 영구적인 컨텐츠 이동을 나타낼때 사용되나, HTTP 메소드의 변경을 허용하지 않습니다.

     

    4XX (Client Error) : 요청의 문법이 잘못되었거나 요청을 처리할 수 없습니다.

    - 굵게 강조된 것은 자주 보이는 오류를 표시합니다.

    400 Bad Request(잘못된 요청): 요청 자체가 잘못되었을 때 사용하는 코드입니다.
    401 Unauthorized(권한 없음): 인증이 필요한 리소스에 인증 없이 접근할 경우 발생합니다. 이 응답 코드를 사용할 때에는 반드시 브라우저에 어느 인증 방식을 사용할 것인지 보내야 합니다. 단순히 권한이 없는 경우 이 응답 코드 대신 아래 403 Forbidden을 사용해야 합니다.
    402 Payment Required(결제 필요): 결제가 필요한 리소스에 결제없이 접근했을 경우 발생. HTTP/1.1에서 정의되었으나 구현하지는 않고, 향후에 사용하기 위해 예약해둔 코드이다. 현재 딱히 표준조차도 존재하지 않는다. 이런 상황에서는 보통 403을 사용한다.
    403 Forbidden : 서버가 요청을 거부할 때 발생합니다. 관리자가 해당 사용자를 차단했거나 서버에 index.html 이 없는 경우에도 발생할 수 있습니다. 혹은 권한이 없을 때(로그인 여부와는 무관)에도 발생합니다.
    404 Not Found(찾을 수 없음): 찾는 리소스가 없다는 뜻으로, 가장 흔하게 볼 수 있는 오류 코드입니다.
    405 Method Not Allowed(허용되지 않은 방법) : PUT이나 DELETE 등 서버에서 허용되지 않은 메소드로 요청시 사용하는 코드입니다.
    406 Not Acceptable(받아들일 수 없음) : 요청은 정상이나 서버에서 받아들일 수 없는 요청일시 사용하는 코드입니다. 보통 웹 방화벽에 걸리는 경우 이 코드가 반환됩니다.
    407 Proxy Authentication Required(프록시 인증 필요) : 프록시 인증이 필요할 경우 사용하는 코드입니다.
    408 Request Timeout(요청 시간 초과) : 요청 중 시간이 초과되었을때 사용하는 코드입니다.
    409 Conflict(충돌) : 사용자의 요청이 서버의 상태와 충돌하여 응답하는 코드입니다.
    410 Gone : 404와는 달리 찾는 리소스가 영원히 사라진 경우 사용하는 코드입니다.
    411 Length Required(길이 필요) : 서버에 요청시 Content-Length 값을 지정하지 않아 서버에서 응답을 거부할 때 쓰는 코드입니다.
    412 Precondition Failed(전제조건 실패): 사용자가 서버로 조건부 요청(Conditional Requests)을 보낼 때 서버의 전제조건와 사용자의 전제조건이 맞지 않아 서버에서 응답 거부를 할때 쓰는 코드입니다.
    413 Payload Too Large(요청이 너무 긺) : 요청 본문이 너무 긴 경우 발생한다. 서버 소프트웨어로 엔진엑스를 사용하는 경우 기본 설정 그대로 사용하면 큰 첨부파일을 올릴 때 이 오류 코드가 발생하게 됩니다.
    414 URI Too Long(URI가 너무 긺): URI가 너무 길 때 발생한다. 흔히 볼 수 있는 사례는 URL이 너무 긴 경우입니다.
    415 Unsupported Media Type(지원하지 않는 미디어 타입): 사용자가 요청한 미디어타입이 서버에서 지원하지 않는 타입이라서 응답을 거부할 때 쓰는 코드입니다.
    416 Requested Range Not Satisfiable(요청범위 부적합): 요청 헤더의 Range로 지정한 범위가 잘못되었을 때 발생합니다.
    417 Expectation Failed(예측 실패): 요청 헤더의 Expect값이 서버에서는 적절하지 못하다는 것을 응답할때 쓰는 코드입니다.
    418 I'm a teapot(찻주전자로 커피를 만들 수 없음.): 하이퍼텍스트 커피 포트 제어 프로토콜(HTCPCP)(RFC 2324)에서 사용되는 코드입니다. 
    421 Misdirected Request(잘못된 요청): 서버로 유도된 요청된 응답을 서버에서 생성할 수 없을때 응답하는 코드로 주로 TLS 인증서가 여러개 설치된 상태에서 꼬였을 경우 뜨는 오류입니다.
    422 Unprocessable Entity(처리할 수 없는 개체): 요청을 잘 받았으나 문법 오류로 인하여 무언가를 응답할 수 없을때 사용되는 코드입니다. WebDAV 전용.
    423 Locked(잠김): 요청한 리소스가 잠겨있을때 뜨는 코드입니다. WebDAV 전용.
    424 Failed Dependency(실패한 종속성): 이전의 요청이 실패한 상태에서 지금의 요청도 실패한 경우 뜨는 코드입니다. 간단히 말해 요청 연속실패. WebDAV 전용.
    425 Too Early(너무 일찍요청) : 서버가 재생될 수 있는 요청을 처리하는 데 위험을 감수하지 않는다는걸 알릴때 사용되는 코드입니다. 클라이언트가 파이어폭스 58 이후 버전이 아닌이상 재대로 해석하지는 않습니다.
    426 Upgrade Required(업그레이드 필요): 클라이언트에서 보낸 요청의 프로토콜이 맞지 않아 현재 서버에서 처리할 수 없으나, 클라이언트가 프로토콜을 서버에서 지원하는 다른 프로토콜로 업그레이드 한다면 처리해 줄 수도 있는 상황에서 쓰는 응답 코드입니다. 주로 서버의 응답에는 Upgrade 헤더와 필요한 프로토콜을 같이 응답한다. 보통 HTTP/1.1인 클라이언트가 HTTP/2만 지원하는 서버에서 요청할 때 뜹니다.
    428 Precondition Required(전제 조건 필요): 서버로 요청을 할려면 요청이 조건부이어야만 할 때 뜨는 코드입니다. 사용자가 PUT 요청을 하여 서버의 값이 수정되는 동안 다른 사용자가 서버의 상태를 수정하여 발생하는 충돌인 업데이트 상실를 막기 위해서 존재하는 코드.
    429 Too Many Requests(너무 많은 요청): 일정 시간 동안 너무 많은 요청을 보냈을 때 이를 거부하기 위해 사용합니다. 나무위키에서는 페이지 소스(/raw/문서명) 보기를 너무 자주 요청했을 때 임시 차단을 걸기 위해 사용되며 대다수 API에서 요청 제한을 나타내기 위해 사용합니다.
    431 Request Header Fields Too Large(요청 헤더 필드가 너무 큼): 요청한 헤더 값이 너무 커서 서버에서 처리를 하지 않는다는 걸 응답할 때 쓰는 코드입니다. 보통 크기가 큰 쿠키와 캐시가 너무 쌓여져 있는 상태에서 서버에 요청할 때 뜨는 오류입니다. 그리고 사용자 에이전트 변경프로그램으로 UA를 너무 길게 설정했을 때도 나옵니다. 캐시 및 쿠키를 정리하면 대부분 정상적으로 서버에서 응답합니다.
    451 Unavailable For Legal Reasons(법적인 이유로 차단됨): 국가 검열 등, 법적인 이유로 차단되었을 경우 사용할 수 있도록 정의된 코드입니다. 서버는 Link 헤더로 차단된 근거가 되는 주소를 보낼 수 있습니다.

     

    5XX (Server Error) : 서버가 명백히 유효한 요청에 대해 충족을 실패했습니다.

    : 굵게 강조된 것은 자주 보이는 오류를 표시합니다.

    500 Internal Server Error(내부 서버 오류): 서버에 오류가 발생해 작업을 수행할 수 없을 때 사용된다. 보통 설정이나 퍼미션 문제. 아니면 HTTP 요청을 통해 호출한 문서가 실제 HTML 문서가 아니라 JSP, PHP, 서블릿 등의 프로그램일 경우 그 프로그램이 동작하다 세미콜론을 빼먹는 등의 각종 에러로 비정상 종료를 하는 경우 이 응답코드를 보냅니다.
    501 Not Implemented(요청한 기능 미지원): 서버가 요청을 수행하는데 필요한 기능을 지원하지 않는 경우 사용됩니다. 웬만해서는 볼 수 없습니다.
    502 Bad Gateway(게이트웨이 불량): 게이트웨이가 연결된 서버로부터 잘못된 응답을 받았을 때 사용됩니다.
    503 Service Temporarily Unavailable(일시적으로 서비스를 이용할 수 없음): 서비스를 일시적으로 사용할 수 없을 때 사용됩니다. 주로 웹서버 등이 과부하로 다운되었을 때 볼 수 있습니다.
    504 Gateway Timeout(게이트웨이 시간초과): 게이트웨이가 연결된 서버로부터 응답을 받을 수 없었을 때 사용됩니다.
    505 HTTP Version Not Supported(지원되지 않는 HTTP 버전): HTTP 버전을 서버가 처리할 수 없습니다. 브라우저는 서버가 처리 가능한 HTTP 버전을 자동으로 선택하므로, 웬만해서는 볼수 없는 오류입니다.
    506 Variant Also Negotiates: 서버 내부 구성(값)에 오류가 있어 반환되는 값에 컨텐츠 협상이 순환 참조로 이루어져 있다는걸 알려주는 코드.
    507 Insufficient Storage: 서버 내부 구성(값)에 오류가 있어 선택된 가변 리소스는 투명한 콘텐츠 협상에 참여하도록 구성되므로 협상 과정에서 적절한 끝점이 아님을 알려주는 코드입니다. WebDAV 전용.
    508 Loop Detected (무한 루프 발견): 서버가 요청을 처리하는 동안 무한 루프를 발견하였을 때 뜨는 응답코드입니다. WebDAV 전용.
    510 Not Extended(확장되지 않았음): 서버가 요청을 처리할때 요청에 대한 추가 확장이 필요한경우 뜨는 응답코드입니다.
    511 Network Authentication Required(네트워크 인증 필요): 사용자가 네트워크 엑세스 권한이 필요한 경우 뜨는 응답코드입니다. 보통 네트워크에 엑세스할 때 로그인이 필요한 경우 주로 뜹니다
    .

     

    비표준 응답코드

    420 Enhance Your Calm : 트위터의 초기 API에서 사용하던 비표준 응답코드. 클라이언트가 API 리밋에 도달할 경우에 사용되었으나, 표준 코드인 429 Too Many Requests가 나오자 이쪽으로 대체되었습니다.
    509 Bandwidth Limit Exceeded : 설정한 대역폭 제한을 초과시 사용된다. 원래 아파치 HTTP 서버와 CPanel에 쓰는 비표준 응답코드이나 웹호스팅를 사용하는 경우가 많아진 지금은 사실상 표준응답코드로 사용됩니다.
    520 Unknown Error : 알 수 없는 오류. Cloudflare에서 주로 쓰는 비표준 응답코드.
    521 Web server is down : 웹 서버가 가동 중이지 않을 때 나타납니다. Cloudflare에서 주로 쓰는 비표준 응답코드.
    522 Connection timed out(연결 시간 초과) : 접속 시간 초과. Cloudflare에서 주로 쓰는 비표준 응답코드.
    525 SSL Handshake Failed : 서버와 사용자간에 SSL/TLS Handshake을 할 수 없을 때 뜨는 코드로 주로 TLS를 설정을 안하고 HTTPS 접속이 안되는 서버 상태에서 Cloudflare SSL 구성값에 오류가 생긴 경우에 주로 뜹니다. Cloudflare에서 주로 쓰는 비표준 응답코드.
    526 Invalid SSL certificates : 서버의 SSL 인증서의 유효성을 검증 할수없고 인증서가 잘못되었을때 뜹니다. Cloudflare에서 주로 쓰는 비표준 응답코드.

     

    출처

    https://namu.wiki/

     

    나무위키:대문 - 나무위키

    이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권

    namu.wiki

    https://ko.wikipedia.org/

     

    위키백과, 우리 모두의 백과사전

    위키백과:대문 위키백과, 우리 모두의 백과사전. 위키백과 우리 모두가 만들어가는 자유 백과사전문서 588,246개와 최근 기여자 2,012명 사랑방 다른 분들과 의견을 교환해봐요! 질문방 지침으로

    ko.wikipedia.org

     

    조금 귀여운 사이트

    https://http.cat/

     

    HTTP Cats

    API for HTTP Cats

    http.cat

     

    댓글

Designed by Tistory.