HTTP 상태 코드

Lys·2023년 10월 18일
0

네트워크

목록 보기
17/19

HTTP상태코드란

HTTP 상태 코드는 클라이언트와 서버가 데이터를 주고 받을 때 성공적으로 주고 받았는지를 확인할 수 있는 코드이다.
HTTP 상태 코드는 100번대에서 500번대까지 5개의 그룹으로 나누어지고 각 번호대별로 의미하는 것이 다르다.

첫자리에 따른 상태코드 분류

  • 1xx(정보) : 요청을 받았으며 프로세스를 계속 한다.(Informational)
    협업에서 잘 사용 되지 않는 상태코드이다.
  • 2xx(성공) : 요청을 성공적으로 받았으며 인식했고 수용하였다.(Success)
  • 3xx(리다이렉션) : 요청 완료를 위해 추가 작업 조치가 필요하다.(Redirection)
  • 4xx(클라이언트 오류) : 요청의 문법이 잘못되었거나 요청을 처리 할 수 있다.(Client Error)
  • 5xx(서버 오류) : 서버가 명백히 유효한 요청에 대해 충족을 실패 하였다.(Server Error)

    리다이렉션(Redirection)이란? 클라이언트가 요청한 URL에 대해 다른 URL을 다시 지시하여 다른 주소로 이동할 수 있게 하는 기술이다.

1xx번대(조건부 응답)

  • 요청을 받았으며 작업을 계속한다.
    • 100(Continue) : 요청자는 요청을 계속해야 되고 서버는 이 코드를 제공하여 요청의 첫 번째 부분을 받았으며 나머지를 기다리고 있다.
    • 101(Switching Protocols) : 요청자가 서버에 프로토콜 전환을 요청했으며 서버는 이를 승인하고 있다.
    • 102(Processing) : 서버가 요청을 수신하였으며 이를 처리중이지만 아직 제대로 된 응답을 줄 수 없다.
    • 103(Early Hints) : 웹 페이지에 필요한 리소스에 대해 힌트를 제공하여 리소스를 사전 로드하여 로딩을 빠르게 한다.

2xx번대(성공)

  • 클라이언트의 요청이 성공적으로 수신 되었음을 나타내는 의미
    어떠한 행위에 대한 성공인지에 대한 것도 나타낸다.
    • 200(OK) : 클라이언트의 요청을 서버가 정상적으로 처리하였다.
    • 201(Created) : 요청이 처리 되어서 새로운 리소스가 생성 되었다.
    • 202(Accepted) : 요청은 접수 하였지만 처리는 완료되지 않았다.
    • 203(Non-Authoritative Information) : 웹 사이트가 프록시 서버(VPN등)를 사용할 때 반환되는 코드
    • 204(No Content) : 처리를 성공하였지만, 클라이언트에게 돌려줄 것이 없다.
    • 205(Reset Content) : 브라우저를 새로 고침 해라
    • 206(Partial Content) : 콘텐츠의 일부만을 보낸다.
    • 207(Multi-Status) : 처리 결과가 여러개 혼합되어 응답되었다.
    • 208(Already Reported) : 이미 앞에서 열거 되었다.
    • 218(This is fine) : Apache 웹 서버에서 사용되는 비공식 HTTP 응답 코드
    • 226(IM Used) : 서버가 GEt 여청에 대한 응답 의무를 다했다.

3xx번대(리다이렉션 완료)

  • 요청을 완료하려면 추가적인 작업이 필요함을 의미한다.
    • 300(Multiple Choices): 요청에서 둘 이상의 가능한 응답이 있다.
    • 301(Moved Permanently): 영구적으로 이동
    • 302(Found): 다른 URL에서 리소스를 찾음
    • 303(See Other): 다른 URL에서 리소스를 찾음
    • 304(Not Modified):마지막 요청 이후 요청한 페이지는 수정되지 않았다.
    • 305(Use Proxy): 지정한 리소스에 엑세스 하려면 프록시를 통해야 된다.
    • 306(Switch Proxy / Undefined): 클라이언트가 대체 프록시를 사용하도록 리다이렉션
    • 307(Temporary Redirect): 임시로 리다이렉션 요청이 필요한다.
    • 308(Permanent Redirect): 영구 이동

4xx번대(요청 오류)

  • 클라이언트 오류를 의미하며, 잘못 된 문법 등의 오류로 인해 서버가 요청을 수행할 수 없고 그 원인이 클라이언트에게 있음을 의미한다.
    • 400(Bad Request): 요청 구문이 잘 못 되었다.
    • 401(Unauthorized): 지정한 리소스에 대한 엑세스 권한이 없다.
    • 402(Payment Required): 지정한 리소스를 엑세스 하기 위해서는 결제가 필요하다.
    • 403(Forbidden):요청자는 승인되지 않아 작업을 진행할수 없다.
    • 404(Not Found): 클라이언트가 요청한 자원이 존재하지 않는다.
    • 405(Method Not Allowed): 요청이 허용되지 않은 메서드이다.
    • 406(Not Acceptable): 콘텐츠 협상에 일치하는 것이 없다.
    • 407(Proxy Authentication Required): 클라이언트는 프록시 서버에 인증이 필요하다.
    • 408(Request Timeout): 요청을 기다리다 서버에서 타임아웃 하였다.
    • 409(Conflict): 서버가 요청을 수행하는 중에 충돌이 발생하였다.
    • 410(Gone):지정한 리소스가 현재는 존재하지 않는다.
    • 411(Length Required):요청 헤더에 Content-Length를 지정해야 한다.
    • 412(Precondition Failed): 클라이언트가 캐시에 대한 조건부 요청을 했는데 실패했을 때 응답 된다.
    • 413(Payload Too Large Request Entity Too Large): 요청 본문이 서버에서 정의한 한계 보다 너무 커서 처리 할 수 없다.
    • 414(URI Too Long Request URI Too Long): 요청 URI이 너무 길어 처리할수 없다.
    • 415(Unsupported Media Type):클라이언트가 지정한 미디어 타입을 서버가 지원하지 않는다.
    • 416(Range Not Satisfiable): 클라이언트가 지정한 리소스 범위와 서버의 리소스 사이즈가 맞지 않는다.
    • 417(Expectation Failed):클라이언트가 지정한 Expect 헤더를 서버가 이해할 수 없다.
    • 422(Unprocessable Entity):버가 요청을 이해하고 요청 문법도 올바르지만 요청된 지시를 따를 수 없다.
    • 423(Locked): 지정한 리소스는 잠겨있다.
    • 424(Failed Dependency):다른 작업의 실패로 본 요청도 실패하였다.
    • 426(Upgrade Required): HTTP 프로토콜 업그레이드 권고
    • 428(Precondition Required):서버가 클라이언트에게 요청을 조건부로 해야 된다.
    • 429(Too Many Requests):클라이언트가 일정시간 동안 보낸 요청이 너무 많다.
    • 431(Request Header Fields Too Large):헤더의 길이가 너무 크다.
    • 451(Unavailable For Legal Reasons):법적으로 문제가 있는 리소스를 요청하였다.

5xx번대(서버 오류)

  • 4xx번대와 동일하게 오류로 인한 요청 처리 실패를 의미하지만 원인이 서버에게 있음을 뜻한다. 5xx번 서버는 서버에 문제가 있기 때문에 서버 자체의 상태를 보아야 하는 차이가 있다.
    • 500(Internal Server Error) : 서버에 에러가 발생하였다.
    • 501(Not Implemented) : 요청한 URI의 메소드에 대해 서버가 구현하고 있지 않다.
    • 502(Bad Gateway) : 게이트웨이가 잘못되어, 서버가 잘못된 응답을 수신했다.
    • 503(Service Unavailable) :서비스 이용 불가 (일시적)
    • 504(Gateway Timeout) :게이트웨이 시간 초과로, 서버에서 요청을 처리하지 아니하고 연결을 닫았다.
    • 505(HTTP Version Not Supported) :서버에서 지원되지 않는 HTTP 버전이라 처리 불가능하다.
    • 507(Insufficient Storage) : 서버에 저장 공간 부족으로 처리에 실패하였다.
    • 508(Loop Detected) :무한 루프를 감지
    • 511(Network Authentication Required) : 네트워크 인증 요구
    • 599(Network Connect Timeout Error) :네트워크 연결 시간 초과 오류

🙇‍ 참고 사이트 🙇‍

https://hongong.hanbit.co.kr/http-%EC%83%81%ED%83%9C-%EC%BD%94%EB%93%9C-%ED%91%9C-1xx-5xx-%EC%A0%84%EC%B2%B4-%EC%9A%94%EC%95%BD-%EC%A0%95%EB%A6%AC/
https://velog.io/@soyeon207/HTTP-%EC%83%81%ED%83%9C-%EC%BD%94%EB%93%9C-%EC%A0%95%EB%A6%AC
https://ko.wikipedia.org/wiki/HTTP_%EC%83%81%ED%83%9C_%EC%BD%94%EB%93%9C

0개의 댓글

관련 채용 정보