티스토리 뷰

HTTP 상태 코드 목록과 각 코드의 정보

MINA 2024. 7. 20. 00:51

웹 개발에서 HTTP 상태 코드는 클라이언트가 보낸 요청에 대해 서버가 응답하는 상태를 나타내는 중요한 요소입니다. 상태 코드는 클라이언트와 서버 간의 통신이 성공했는지, 실패했는지, 추가적인 조치가 필요한지 등을 알려줍니다. 이 글에서는 HTTP 상태 코드의 종류와 각 코드의 의미를 상세히 설명하겠습니다.

HTTP 상태 코드 목록과 각 코드의 정보

 

 

1xx (정보 응답)

1xx 상태 코드는 정보 응답으로, 요청을 받았으며 프로세스를 계속 진행 중임을 나타냅니다.

100 Continue

  • 의미: 클라이언트가 요청을 초기화했으며, 서버는 계속 진행하라는 신호를 보냅니다.
  • 설명: 클라이언트는 계속해서 요청을 보내야 하며, 서버는 이를 기다리고 있습니다.

101 Switching Protocols

  • 의미: 클라이언트가 프로토콜 전환을 요청했으며, 서버가 이를 승인했다는 의미입니다.
  • 설명: 클라이언트가 요청한 프로토콜로 전환이 완료되었습니다.

102 Processing (WebDAV)

  • 의미: 서버가 요청을 수신했으나 처리를 완료하지 않았음을 나타냅니다.
  • 설명: 이는 주로 WebDAV 요청에서 사용됩니다.

 

 

2xx (성공 응답)

2xx 상태 코드는 요청이 성공적으로 수신되고 이해되었으며 처리되었음을 나타냅니다.

200 OK

  • 의미: 요청이 성공적으로 처리되었음을 나타냅니다.
  • 설명: 가장 일반적인 응답 코드로, 요청이 성공적으로 완료되었을 때 사용됩니다.

201 Created

  • 의미: 요청이 성공적으로 처리되었으며, 자원이 생성되었음을 나타냅니다.
  • 설명: 주로 POST 요청 후 새로운 리소스가 생성된 경우 사용됩니다.

202 Accepted

  • 의미: 요청이 수락되었지만 처리가 완료되지 않았음을 나타냅니다.
  • 설명: 요청이 처리될 것을 보장하지는 않습니다.

203 Non-Authoritative Information

  • 의미: 요청이 성공적으로 처리되었으나, 다른 소스에서 수신된 정보가 포함되어 있음을 나타냅니다.
  • 설명: 원본 서버와 일치하지 않는 메타 정보가 포함되어 있을 수 있습니다.

204 No Content

  • 의미: 요청이 성공적으로 처리되었으나, 반환할 콘텐츠가 없음을 나타냅니다.
  • 설명: 주로 업데이트 요청 후 사용됩니다.

205 Reset Content

  • 의미: 요청이 성공적으로 처리되었으며, 클라이언트는 뷰를 초기화해야 함을 나타냅니다.
  • 설명: 사용자 입력 양식을 초기화할 때 유용합니다.

206 Partial Content

  • 의미: 클라이언트가 요청한 일부 콘텐츠만을 제공함을 나타냅니다.
  • 설명: 범위 요청에 대한 응답으로 사용됩니다.

 

 

3xx (리다이렉션 응답)

3xx 상태 코드는 클라이언트가 요청을 완료하기 위해 추가적인 조치를 취해야 함을 나타냅니다.

300 Multiple Choices

  • 의미: 요청에 대해 여러 가지 가능한 응답이 있음을 나타냅니다.
  • 설명: 클라이언트는 적절한 응답을 선택해야 합니다.

301 Moved Permanently

  • 의미: 요청한 자원이 영구적으로 새로운 위치로 이동했음을 나타냅니다.
  • 설명: 클라이언트는 앞으로 새로운 URI를 사용해야 합니다.

302 Found

  • 의미: 요청한 자원이 임시로 다른 위치에 있음을 나타냅니다.
  • 설명: 클라이언트는 동일한 URI로 다시 요청을 시도할 수 있습니다.

303 See Other

  • 의미: 클라이언트가 다른 URI를 참조하도록 유도합니다.
  • 설명: POST 요청 후 GET 요청을 통해 다른 URI로 리디렉션할 때 사용됩니다.

304 Not Modified

  • 의미: 클라이언트의 캐시된 버전이 최신 상태임을 나타냅니다.
  • 설명: 서버는 클라이언트가 요청한 자원을 전송하지 않고, 캐시를 사용하도록 유도합니다.

305 Use Proxy (Deprecated)

  • 의미: 요청한 자원에 접근하기 위해 프록시를 사용해야 함을 나타냅니다.
  • 설명: 현재는 보안상의 이유로 잘 사용되지 않습니다.

307 Temporary Redirect

  • 의미: 요청한 자원이 임시로 다른 위치에 있음을 나타냅니다.
  • 설명: 302 Found와 유사하지만, 클라이언트가 원래 요청 메소드를 유지해야 합니다.

308 Permanent Redirect

  • 의미: 요청한 자원이 영구적으로 다른 위치로 이동했음을 나타냅니다.
  • 설명: 301 Moved Permanently와 유사하지만, 클라이언트가 원래 요청 메소드를 유지해야 합니다.

 

 

4xx (클라이언트 오류 응답)

4xx 상태 코드는 클라이언트의 요청에 오류가 있음을 나타냅니다.

400 Bad Request

  • 의미: 클라이언트의 요청이 잘못되었거나 손상되었음을 나타냅니다.
  • 설명: 잘못된 구문, 유효하지 않은 요청 메시지 프레이밍, 또는 악의적인 요청일 수 있습니다.

401 Unauthorized

  • 의미: 요청이 인증되지 않았음을 나타냅니다.
  • 설명: 클라이언트는 요청을 수행하기 위해 인증이 필요합니다.

402 Payment Required

  • 의미: 결제가 필요함을 나타냅니다.
  • 설명: 현재는 거의 사용되지 않지만, 미래에 사용될 가능성이 있습니다.

403 Forbidden

  • 의미: 서버가 요청을 거부했음을 나타냅니다.
  • 설명: 클라이언트가 자원에 접근할 권한이 없습니다.

404 Not Found

  • 의미: 요청한 자원을 찾을 수 없음을 나타냅니다.
  • 설명: 클라이언트가 요청한 URL이 잘못되었거나 자원이 삭제된 경우 사용됩니다.

405 Method Not Allowed

  • 의미: 요청한 HTTP 메소드가 허용되지 않음을 나타냅니다.
  • 설명: 서버는 해당 자원에 대해 사용할 수 있는 메소드를 응답 헤더에 포함합니다.

406 Not Acceptable

  • 의미: 클라이언트가 요청한 콘텐츠의 형식을 제공할 수 없음을 나타냅니다.
  • 설명: 서버는 클라이언트가 요청한 형식에 맞는 응답을 제공할 수 없습니다.

407 Proxy Authentication Required

  • 의미: 프록시 인증이 필요함을 나타냅니다.
  • 설명: 클라이언트는 프록시 서버를 통해 요청을 수행하기 위해 인증이 필요합니다.

408 Request Timeout

  • 의미: 서버가 요청을 기다리다가 시간이 초과되었음을 나타냅니다.
  • 설명: 클라이언트가 정해진 시간 내에 요청을 완료하지 못했습니다.

409 Conflict

  • 의미: 요청이 서버의 현재 상태와 충돌함을 나타냅니다.
  • 설명: 주로 PUT 요청에서 리소스의 현재 상태와 충돌이 발생했을 때 사용됩니다.

410 Gone

  • 의미: 요청한 자원이 서버에서 영구적으로 삭제되었음을 나타냅니다.
  • 설명: 이전에 존재했던 자원이 더 이상 존재하지 않을 때 사용됩니다.

411 Length Required

  • 의미: Content-Length 헤더 필드가 없어서 요청을 거부함을 나타냅니다.
  • 설명: 서버는 요청에 Content-Length 헤더 필드가 필요합니다.

412 Precondition Failed

  • 의미: 클라이언트가 설정한 전제 조건이 서버에서 충족되지 않았음을 나타냅니다.
  • 설명: 조건부 요청이 실패한 경우 사용됩니다.

413 Payload Too Large

  • 의미: 요청한 엔티티의 크기가 서버가 처리할 수 있는 한도를 초과했음을 나타냅니다.
  • 설명: 클라이언트는 요청 엔티티를 줄여서 다시 시도해야 합니다.

414 URI Too Long

  • 의미: 요청한 URI가 너무 길어서 서버가 처리할 수 없음을 나타냅니다.
  • 설명: 주로 GET 요청에서 URI가 너무 길 경우 사용됩니다.

415 Unsupported Media Type

  • 의미: 요청한 미디어 타입이 서버에서 지원되지 않음을 나타냅니다.
  • 설명: 클라이언트는 지원되는 미디어 타입으로 요청해야 합니다.

416 Range Not Satisfiable

  • 의미: 요청한 범위가 유효하지 않음을 나타냅니다.
  • 설명: 클라이언트가 요청한 범위가 리소스의 범위를 벗어납니다.

417 Expectation Failed

  • 의미: Expect 요청 헤더 필드의 요구사항을 서버가 충족할 수 없음을 나타냅니다.
  • 설명: 서버가 요청을 이해했지만 요구 사항을 충족하지 못했습니다.

418 I'm a teapot (RFC 2324)

  • 의미: 서버가 찻주전자라서 커피를 양조할 수 없음을 나타냅니다.
  • 설명: 만우절 장난으로 만들어진 상태 코드입니다.

421 Misdirected Request

  • 의미: 요청이 잘못된 서버로 전달되었음을 나타냅니다.
  • 설명: 요청이 원래 의도된 서버가 아닌 다른 서버로 전달되었습니다.

422 Unprocessable Entity (WebDAV)

  • 의미: 서버가 요청을 이해했으나 처리를 거부함을 나타냅니다.
  • 설명: 주로 WebDAV 요청에서 사용되며, 구문 오류가 아닌 논리 오류일 경우 사용됩니다.

423 Locked (WebDAV)

  • 의미: 리소스가 잠겨 있음을 나타냅니다.
  • 설명: 주로 WebDAV 요청에서 사용되며, 리소스가 잠겨서 접근할 수 없습니다.

424 Failed Dependency (WebDAV)

  • 의미: 이전 요청이 실패하여 현재 요청도 실패함을 나타냅니다.
  • 설명: 주로 WebDAV 요청에서 사용되며, 전제 조건이 충족되지 않아 요청이 실패합니다.

425 Too Early

  • 의미: 서버가 요청을 처리하기에 너무 이르다고 판단했음을 나타냅니다.
  • 설명: 재시도하기 전에 더 기다려야 할 때 사용됩니다.

426 Upgrade Required

  • 의미: 클라이언트가 다른 프로토콜로 전환해야 함을 나타냅니다.
  • 설명: 서버는 클라이언트가 요청을 완료하기 위해 업그레이드해야 한다고 응답합니다.

428 Precondition Required

  • 의미: 요청이 조건부여야 함을 나타냅니다.
  • 설명: 서버는 조건부 요청을 요구하며, 그렇지 않으면 충돌이 발생할 수 있습니다.

429 Too Many Requests

  • 의미: 클라이언트가 일정 시간 내에 너무 많은 요청을 보냈음을 나타냅니다.
  • 설명: 클라이언트는 요청 속도를 줄여야 합니다.

431 Request Header Fields Too Large

  • 의미: 요청 헤더 필드가 너무 커서 서버가 처리할 수 없음을 나타냅니다.
  • 설명: 클라이언트는 요청 헤더 필드를 줄여서 다시 시도해야 합니다.

451 Unavailable For Legal Reasons

  • 의미: 법적 이유로 인해 요청한 자원을 사용할 수 없음을 나타냅니다.
  • 설명: 정부 검열이나 법적 제한으로 인해 접근할 수 없습니다.

 

 

5xx (서버 오류 응답)

5xx 상태 코드는 서버가 요청을 처리하는 도중 오류가 발생했음을 나타냅니다.

500 Internal Server Error

  • 의미: 서버에 내부 오류가 발생하여 요청을 처리할 수 없음을 나타냅니다.
  • 설명: 일반적인 서버 오류로, 구체적인 원인은 명시되지 않습니다.

501 Not Implemented

  • 의미: 서버가 요청을 처리하는 기능을 지원하지 않음을 나타냅니다.
  • 설명: 서버가 요청 메소드를 인식하지 못하거나, 기능이 구현되지 않았을 때 사용됩니다.

502 Bad Gateway

  • 의미: 게이트웨이 또는 프록시 서버가 상위 서버로부터 유효한 응답을 받지 못했음을 나타냅니다.
  • 설명: 서버 간의 통신에 문제가 발생했을 때 사용됩니다.

503 Service Unavailable

  • 의미: 서버가 일시적으로 과부하 또는 유지보수로 인해 요청을 처리할 수 없음을 나타냅니다.
  • 설명: 클라이언트는 나중에 다시 시도해야 합니다.

504 Gateway Timeout

  • 의미: 게이트웨이 또는 프록시 서버가 상위 서버로부터 응답을 받는 데 시간이 초과되었음을 나타냅니다.
  • 설명: 서버 간의 통신이 지연될 때 사용됩니다.

505 HTTP Version Not Supported

  • 의미: 서버가 요청에 사용된 HTTP 버전을 지원하지 않음을 나타냅니다.
  • 설명: 클라이언트는 지원되는 HTTP 버전으로 요청해야 합니다.

506 Variant Also Negotiates

  • 의미: 서버의 내부 구성 문제로 요청을 처리할 수 없음을 나타냅니다.
  • 설명: 투명 콘텐츠 협상이 순환 참조를 일으킬 때 사용됩니다.

507 Insufficient Storage (WebDAV)

  • 의미: 서버가 요청을 처리하는 데 필요한 저장 공간이 부족함을 나타냅니다.
  • 설명: 주로 WebDAV 요청에서 사용됩니다.

508 Loop Detected (WebDAV)

  • 의미: 서버가 무한 루프를 감지하여 요청을 처리할 수 없음을 나타냅니다.
  • 설명: 주로 WebDAV 요청에서 사용됩니다.

510 Not Extended

  • 의미: 요청에 필요한 확장이 누락되었음을 나타냅니다.
  • 설명: 클라이언트는 추가 확장 헤더를 포함하여 요청을 다시 시도해야 합니다.

511 Network Authentication Required

  • 의미: 네트워크 액세스를 위해 클라이언트가 인증을 해야 함을 나타냅니다.
  • 설명: 주로 로그인 페이지를 통해 네트워크 인증이 필요한 경우 사용됩니다.

결론

HTTP 상태 코드는 클라이언트와 서버 간의 통신 상태를 나타내는 중요한 요소입니다. 각 상태 코드는 특정 상황을 나타내며, 이를 통해 클라이언트는 요청의 성공 여부와 추가 조치가 필요한지 여부를 판단할 수 있습니다. 이번 글을 통해 HTTP 상태 코드에 대한 이해가 깊어졌기를 바랍니다. 앞으로 웹 개발을 할 때 이 상태 코드를 참고하여 문제를 빠르게 해결하고, 더 나은 서비스를 제공할 수 있을 것입니다.

 


참고자료
https://www.loggly.com/blog/http-status-code-diagram/

 

HTTP Status Codes Decision Diagram - Infographic | Loggly

This list of HTTP status codes includes all codes from the HTTP/1.1 standard (RFC 7231) and also HTTP status codes from other standards.

www.loggly.com

 

 

[다른글]

https://minabox.tistory.com/54

 

구글 DNS 주소

구글 DNS 주소 주 네임서버 : 8.8.8.8 보조 네임서버 : 8.8.4.4 구글 DNS 사용 시 장점 구글 도메인네임서버(DNS)를 사용하면 좋은 점은 아래와 같습니다. 1. 국내에서 DNS로 차단된 사이트가 구글 DNS는 접

minabox.tistory.com

 

댓글
최근에 올라온 글
최근에 달린 댓글