ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [HTTP] HTTP 응답 상태코드 정리하기();
    HTTP 2021. 4. 19. 00:02
    반응형
    HTTP 응답의 상태코드 정리를 간단하게 해보자

     

     

    크롬 개발자도구 Network 탭을 통해 요청과 응답을 확인할 수 있다.

    모든 HTTP 요청에는 HTTP 응답이 있다. 그 응답 속에는 항상 상태코드(Status Code)가 있는데, 이를 통해 요청을 준 클라이언트에게 서버단의 처리 결과를 알려줄 수 있다.

    개발자로서 항상 200번 대의 응답을 만나는 것은 아니니 400, 500 번대 응답도 알아두는게 도움이 될 것 같다.


    HTTP 상태코드 100 ~ 1xx

    100번 대의 상태코드는 정보성 상태를 의미하며 HTTP/1.1에서 첫 도입되었다.

    구간 상태코드 사유구절 설명
    100 ~ 1xx 100 Continue 클라이언트의 요청의 일부가 받아들여졌으며, 클라이언트는 계속해서 요청의 나머지를 계속 이어서 보내야함을 의미하는 상태
    101 Switching Protocols 서버가 프로토콜을 바꾸었음을 나타내는 상태

    100번 상태코드는 클라이언트가 본문을 서버에게 보낼 때, 그 이전에 서버에서 본문을 받아들일 것이지 확인하고자 할 때 사용되며 100 Continue로 응답한다. 클라이언트는 측에서 해당 응답을 받으려면 Expect 요청 헤더에 100-continue 값을 포함하여 보내야만 한다.

    서버는 100-continue 값이 담긴 Expect 헤더가 포함된 요청을 받는다면, 100 Continue 혹은 400번 대의 에러코드로 응답해야만 한다.

     


    HTTP 상태코드 200 ~ 2xx

    200번 대의 상태코드는 '성공' 을 의미하며, HTTP 통신에서 가장 흔하게 볼 수 있다.

    구간 상태코드 사유구절 설명
    200 ~ 299 200 OK 요청을 정상적으로 처리하였고 본문에 요청된 리소스를 포함하고 있는 상태
    201 Created 서버에 개체를 생성하라는 요청을 위한 성공 상태
    202 Accepted 서버는 클라이언트의 요청에 대하여 수용하였으나, 아직 그 어떤 동작도 수행하지 않은 상태
    203 Non-Autohritative Information 헤더에 들어있는 정보가 리소스 사본에서 왔으며, 리소스에 대한 메타 정보를 검증하지 못한 경우 응답하는 상태
    204 No Content 요청을 정상적으로 처리하였고 본문을 포함하지 않는 상태
    205 Reset Content 브라우저에게 현재 페이지에 있는 HTML 폼에 채워진 모든 값을 비우라는 것을 알려주기 위한 상태
    206 Paritail Content 클라이언트의 요청에 대하여 부분 혹은 범위적인 성공을 나타내는 상태

     


    HTTP 상태코드 300 ~ 3xx

    300번 대의 상태코드는 '리다이렉션' 에 대한 코드이며, 클라이언트의 요청에 대하여 원하는 리소스가 다른 위치에 있다는 것을 전달하거나 해당 리소스의 대안 응답을 제공한다.

    리다이렉션 상태코드와 Location 헤더를 사용하여 브라우저에게 새 위치로 재 요청을 보내도록 할 수 있다.

    구간 상태코드 사유구절 설명
    300 - 3xx 300 Multiple Cohoices 클라이언트가 동시에 여러 리소스를 가리키는 URL을 요청한 경우, 그 리소스의 목록과 함께 반환하는 상태
    301 Moved Permanently 요청한 URL이 옮겨졌을 때 사용되는 상태.
    Location 헤더에 현재 리소스가 존재하고 있는 URL을 포함해야 함.
    302 Found 요청한 URL이 옮겨졌을 때 사용되는 상태.
    Location 헤더의 URL은 임시로 이동되는 목적으로 사용되며 이후의 요청에서는 원래의 URL을 사용해야 함.
    303 See Other 클라이언트에게 리소스를 다른 URL에서 가져올 것을 말하고자 할 때 사용되는 상태.
    Location 헤더에 현재 리소스가 존재하고 있는 URL을 포함해야 함.
    303 상태코드의 주 목적은 POST 요청에 대한 응답이며 GET 요청으로 리다이렉트 시킨다.
    304 Not Modified 클라이언트는 If-Modified-Since 헤더를 사용하여 조건부 요청을 할 수 있다. 조건부 헤더의 정보를 바탕으로 서버의 리소스가 수정된 사항이 없을 경우 반환하는 상태.
    304 상태는 리소스 수정이 없기때문에 응답 본문이 존재하지 않는다.
    305 Use Proxy 리소스가 반드시 프록시를 통해서 접근되어야 함을 나타내기 위해 사용되는 상태.

    307 Temporary Redirect 요청한 URL이 옮겨졌을 때 사용되는 상태.
    Location 헤더의 URL은 임시로 이동되는 목적으로 사용되며 이후의 요청에서는 원래의 URL을 사용해야 함.

     


    HTTP 상태코드 400 ~ 4xx

    400번 대의 상태코드는 '클라이언트 요청에 대한 에러' 를 설명하는 코드이다. 클라이언트의 요청을 서버가 처리할 수 없을 경우 발생하며 대게 브라우저를 통해 처리된다.

    구간 상태코드 사유구절 설명
    400 ~ 4xx 400 Bad Request 클라이언트의 요청이 잘못된 것을 알려주는 상태
    401 Unauthorized 인증이 되지 않은 클라이언트에게 인증을 요구하기 위한 상태
    402 Payment Required 현재 사용되지 않는 상태
    403 Forbidden 서버에서 클라이언트의 요청을 거부하고자 할 때 사용되는 상태. 인증은 되었으나 허가되지 게시물에 접근하고자 할 때 발생 할 수 있음.
    404 Not Found 존재하지 않는 URL에 접근할 때 응답하는 상태
    405 Method Not Allowed 요청한 URL에 대하여 지원하지 않는 메서드의 요청을 받았을 때 사용하는 상태.
    Allow 헤더를 포함하여 클라이언트가 인지할 수 있도록 한다.
    406 Not Acceptable 클라이언트가 요청한 URL에 대한 리소스 중 클라이언트가 받아들일 수 있는 것이 없는 경우 사용되는 상태
    407 Proxy Authentication Required 접근하는 리소스에 대한 인증을 요구하는 프락시 서버를 위해 사용되는 상태
    408 Request Timeout 클라이언트의 요청을 완수하기에 시간이 너무 많이 걸리는 경우, 서버는 408 상태를 응답하면서 연결을 끊을 수 있음.
    409 Conflict 클라이언트의 요청이 리소스의 충돌을 일으킬 염려가 있을 때 사용되는 상태
    410 Gone 404 상태와 비슷하나 한 때, 서버가 해당 리소스를 갖고 있었을 경우 응답하는 상태
    411 Length Required 서버가 클라이언트의 요청에 Content-Length 헤더가 있을 것을 요구할 때 사용하는 상태
    412 Precondition Failed 클라이언트가 조건부 요청을 하였을 경우, 그 중 하나가 실패했을 때 사용하는 상태
    413 Request Entity Too Large 서버가 처리할 수 있는 한계를 넘은 크기의 요청을 클라이언트가 보냈을 경우 사용하는 상태
    414 Request URI Too Long 서버가 처리할 수 있는 한계를 넘은 길이의 요청 URL이 포함된 요청을 클라이언트가 보냈을 경우 사용하는 상태
    415 Unsupported Media Type 서버가 이해하지 못한 내용 유형의 헤더 및 본분을 클라이언트가 요청하였을 경우 응답하는 상태
    416 Requested Range Not Satisfiable 리소스의 특정 범위를 요청하였으나, 그 범위가 잘못되었을 경우 사용되는 상태
    417 Expectation Failed 요청에 포함된 Expect 요청 헤더에 서버가 만족시킬 수 없는 기대가 담겨있는 경우 사용되는 상태

     

     


    HTTP 상태코드 500 ~ 5xx

    500번 대의 상태코드는 '서버 자체 에러' 를 의미한다. 클라이언트 측에서 올바른 요청을 보냈음에도 서버가 처리를 할 수 없는 상태

    구간 상태코드 사유구절 설명
    500 ~ 5xx 500 Internal Server Error 서버가 요청을 처리할 수 없게 만드는 에러가 발생한 경우 응답하는 상태
    501 Not Implemented 클라이언트가 서버의 능력을 넘은 요청을 했을 때 사용하는 상태(서버가 지원하지 않는 메서드로 요청)
    502 Bad Gateway 프록시나 게이트웨이로부터 잘못된 응답을 받았을 경우 사용되는 상태
    503 Service Unavailable 현재 서버에서 요청을 처리해줄 수 없는 상태
    504 Gateway Timeout 프록시나 게이트웨이로부터 응답을 기다리다 발생한 타임아웃에 대한 상태
    505 HTTP Version Not Supported 서버가 지원할 수 없거나 지원하지 않으려고 하는 버전의 프로토콜로 된 요청을 받았을 때 사용하는 상태

     

    반응형

    댓글

Designed by Tistory.