Dev/etc.

HTTP 상태 코드

takeU 2022. 12. 5. 07:05
반응형

HTTP 상태 코드, 응답 코드

1xx (정보 전달)

  • 요청을 받았으며 프로세스를 계속함

  • HTTP/1.0 이후 잘 쓰이지 않다가 101, 103의 등 페이지 로드 속도를 빠르게 하기 위해 다시 사용됨

  • 100 Continue

  • 101 Switching Protocols

  • 102 Processing

    • 수신 요청으로 처리는 하고있지만, 아직 응답을 할 수 없는 상태임을 알리는 코드
  • 103 Early Hints

    • Link Heder와 함께 사용(Link: </style.css>; rel=preload; as=style)되며 서버의 응답 전 PreLoading을 할 수 있도록 하는 응답 코드

2xx (성공)

  • 요청을 성공적으로 받았음

  • 200 OK

  • 201 Created

    • 요청이 처리되어 리소스가 만들어짐
    • POST, PUT 과 같은 Create, Modify 요청 이후에 따라옴
  • 202 Accepted

    • 요청은 받아들였지만 처리되지 않음
  • 203 Non-Authoritative Information

    • 응답받은 메타정보가 서버에 저장된 원본하고는 동일하지는 않지만 로컬이나 다른 복사본에서 수집되었다는 의미이다.
    • 프록시에서 사용되는 상태코드이며, 프록시가 형식을 변환하거나 HTML 본문에 무언가를 추가할 경우 해당 코드를 통해 알림
    • 이 경우 200 OK가 우선적으로 응답하기 때문에 warning 헤더를 통해 해당 상태를 알리는 방법을 권장
  • 204 No Content

    • 요청은 성공했지만, 컨텐츠를 제공하지 않음
    • 처리 성공 여부가 중요한 API 요청에서 사용
  • 205 Reset Content

  • 206 Partial Content

  • 207 Multi-Status

  • 208 Already Reported

3xx(리다이렉션)

  • 요청 완료를 위해 추가 조치가 필요함

  • 짧은 주소 (ex - bit.ly) 서비스의 경우 접속 시 301이나 302 코드와 함께 리다이렉션할 실제 URL을 헤더에 담아 보냄

  • 300 Multiple Choices

  • 301 Moved Permanently

    • 영구적으로 컨텐츠가 이동했을 때 사용
  • 302 Found

    • 일시적으로 컨텐츠가 이동했을 때 사용
  • 303 See Other

    • 서버가 사용자의 GET 요청을 처리하여 다른 URL에서 요청된 정보를 가져올 수 있도록 응답하는 코드
  • 304 Not Modified

    • 리소스가 바뀌지 않았음을 알림
    • 캐시 자원으로의 암묵적 리다이렉션
  • 305 Use Proxy (Deprecated)

  • 306 Unused (Deprecated)

  • 307 Temporary Redirect - 300과 동일하나 HTTP 메소드 변경 불가

  • 308 Permanent Redirect - 301과 동일하나 HTTP 메소드 변경

4xx(클라이언트 오류)

  • 요청의 문법이 잘못되었거나, 처리할 수 없다

  • 400 Bad Request

  • 401 Unauthorized

    • 인증이 필요한 리소스에 인증 없이 접근할 경우
    • 인증 방식 (Basic / Digest)을 함께 보내야 함
    • 단순히 권한이 없는 경우엔 403 사용
  • 402 Payment Required

    • 구현은 안되어 있는 코드 / 보통 403으로 사용
  • 403 Forbidden

    • 서버가 요청을 거부할 때
    • 해당 유저가 차단되었거나, index.html이 없을 경우, 권한이 없는 경우 발생
  • 404 Not Found

    • 리소스 없음
  • 405 Method Not allowed

  • 406 Not Acceptable

    • 요청은 정상이나 서버에서 받아들일 수 없음
    • 일반적으로 웹 방화벽에 걸릴 때 발생
  • 407 Proxy Authentication Required

  • 408 Request Timeout

    • 요청 시간 초과
  • 409 Conflict

  • 410 Gone

    • 404와 달리 리소스가 영원히 사라짐
  • 411 Length Required

    • Content-Length 미 지정
  • 412 Precondition Failed

    • 조건부 요청 시 조건이 맞지 않을 경우
  • 413 Payload Too Large

  • 414 URI Too Long

  • 415 Unsupported Media Type

  • 416 Requested Range not Satisfiable

  • 417 Expectation Failed

  • 418 I'm a teapot

    • 커피 포트 제어 프로토콜 (만우절 장난, 하하 정말재밌다)
  • 421 Misdirected Request

  • 422 Unprocessable Entity

  • 423 Locked

  • 424 Failed Dependency

  • 425 Too Early

  • 426 Upgrade Required

  • 428 Precojndition Required

  • 429 Too Many Requests

  • 431 Request Header Fields Too Large

  • 451 Unavailable For Legal Reasons

5xx(서버 오류)

  • 유효한 요청에 대해 서버가 응답할 수 없다

  • 500 Internal Server Error

  • 501 Not Implemented

  • 502 Bad Gateway

  • 503 Service Temporarily Unavailable

  • 504 Gateway Timeout

  • 505 HTTP vVersion Not Supported

  • 506 Variant Also Negotiates

  • 507 Insufficient Storage

  • 508 Loop Detected

  • 510 Not Extended

  • 511 Network Authentication Required