HTTP 상태 코드는 클라이언트의 요청에 대해 서버가 응답하는 결과를 나타내는 3자리 숫자 코드입니다. 각 상태 코드는 특정한 의미를 가지며, 이를 통해 클라이언트는 요청이 성공했는지, 실패했는지, 또는 다른 조치가 필요한지를 알 수 있습니다. HTTP 상태 코드는 5가지 범주로 나뉩니다.
1. 1xx (정보)
- 100 Continue: 서버가 요청의 일부를 받았고, 클라이언트는 나머지 요청을 계속해서 보내도 된다는 의미입니다.
- 101 Switching Protocols: 클라이언트가 요청한 프로토콜 변경을 서버가 승인했음을 의미합니다.
- 102 Processing: (WebDAV) 서버가 요청을 수신했으며 처리가 진행 중임을 나타냅니다.
- 103 Early Hints: 서버가 최종 응답을 준비하기 전에, 일부 헤더를 미리 제공할 수 있음을 나타냅니다.
2. 2xx (성공)
- 200 OK: 요청이 성공적으로 처리되었음을 나타냅니다.
- 201 Created: 요청이 성공적으로 처리되었으며, 리소스가 새로 생성되었음을 의미합니다.
- 202 Accepted: 요청이 수락되었으나, 아직 처리되지 않았음을 의미합니다.
- 203 Non-Authoritative Information: 요청이 성공적으로 처리되었으나, 응답 데이터는 다른 소스에서 가져왔음을 나타냅니다.
- 204 No Content: 요청이 성공적으로 처리되었으나, 반환할 콘텐츠가 없음을 의미합니다.
- 205 Reset Content: 요청이 성공적으로 처리되었으며, 클라이언트는 뷰를 리셋해야 함을 의미합니다.
- 206 Partial Content: 서버가 요청된 리소스의 일부만을 성공적으로 전송했음을 의미합니다.
- 207 Multi-Status: (WebDAV) 여러 리소스에 대한 상태를 반환합니다.
- 208 Already Reported: (WebDAV) DAV 내부 멀티 스테이터스 응답에서 반복적으로 나열된 리소스가 이미 보고되었음을 나타냅니다.
- 226 IM Used: 서버가 GET 요청에 대해 인스턴스 조작(Instance Manipulations)을 성공적으로 수행했음을 나타냅니다.
3. 3xx (리다이렉션)
- 300 Multiple Choices: 여러 가능한 리소스가 있으며, 클라이언트가 적절한 선택을 할 수 있음을 의미합니다.
- 301 Moved Permanently: 요청한 리소스가 영구적으로 새로운 URI로 이동되었음을 나타냅니다.
- 302 Found: 요청한 리소스가 일시적으로 다른 URI에 있으며, 클라이언트는 새로운 URI로 요청을 리다이렉트해야 합니다.
- 303 See Other: 클라이언트는 GET 요청을 사용해 다른 URI에서 요청한 리소스를 가져올 수 있음을 나타냅니다.
- 304 Not Modified: 클라이언트가 요청한 리소스가 변경되지 않았음을 나타내며, 캐시된 버전을 사용할 수 있음을 의미합니다.
- 305 Use Proxy: 요청한 리소스는 프록시를 통해서만 접근할 수 있음을 나타냅니다. (이 상태 코드는 현재 사용되지 않습니다.)
- 306 (Unused): 현재 사용되지 않는 코드입니다.
- 307 Temporary Redirect: 요청한 리소스가 일시적으로 다른 URI에 있으며, 클라이언트는 동일한 메서드를 사용해 리다이렉트된 URI에 요청을 보내야 합니다.
- 308 Permanent Redirect: 요청한 리소스가 영구적으로 다른 URI로 이동되었으며, 클라이언트는 앞으로 해당 URI를 사용해야 합니다.
4. 4xx (클라이언트 오류)
- 400 Bad Request: 서버가 요청을 이해할 수 없거나 잘못된 요청 형식임을 의미합니다.
- 401 Unauthorized: 클라이언트가 인증되지 않았음을 의미하며, 인증이 필요합니다.
- 402 Payment Required: (미사용) 예약된 상태 코드로, 결제가 필요할 수 있음을 의미합니다.
- 403 Forbidden: 클라이언트가 요청한 리소스에 접근할 권한이 없음을 나타냅니다.
- 404 Not Found: 요청한 리소스를 서버에서 찾을 수 없음을 의미합니다.
- 405 Method Not Allowed: 요청된 HTTP 메서드가 허용되지 않음을 나타냅니다.
- 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: 요청 본문이 너무 커서 서버가 처리할 수 없음을 의미합니다.
- 414 URI Too Long: 요청한 URI가 너무 길어서 서버가 처리할 수 없음을 의미합니다.
- 415 Unsupported Media Type: 요청한 미디어 타입이 서버에서 지원되지 않음을 의미합니다.
- 416 Range Not Satisfiable: 요청한 범위가 리소스에서 만족되지 않음을 의미합니다.
- 417 Expectation Failed: 서버가 클라이언트의 Expect 헤더에 있는 기대를 충족할 수 없음을 의미합니다.
- 418 I'm a teapot: (장난으로 정의된 코드) 서버가 커피를 양조할 수 없음을 의미합니다.
- 421 Misdirected Request: 서버가 이 요청을 처리할 수 없는 서버임을 의미합니다.
- 422 Unprocessable Entity: (WebDAV) 요청은 잘 형성되었으나, 의미상 처리를 할 수 없음을 나타냅니다.
- 423 Locked: (WebDAV) 요청한 리소스가 잠겨 있음을 나타냅니다.
- 424 Failed Dependency: (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: 법적 이유로 요청한 리소스를 사용할 수 없음을 의미합니다.
5. 5xx (서버 오류)
- 500 Internal Server Error: 서버에서 요청을 처리하는 중에 일반 오류가 발생했음을 의미합니다.
- 501 Not Implemented: 서버가 요청된 기능을 지원하지 않음을 의미합니다.
- 502 Bad Gateway: 게이트웨이나 프록시 서버가 잘못된 응답을 받았음을 의미합니다.
- 503 Service Unavailable: 서버가 현재 요청을 처리할 수 없음을 의미합니다. (과부하 또는 유지보수 중)
- 504 Gateway Timeout: 게이트웨이나 프록시 서버가 정해진 시간 내에 응답을 받지 못했음을 의미합니다.
- 505 HTTP Version Not Supported: 서버가 요청된 HTTP 버전을 지원하지 않음을 의미합니다.
- 506 Variant Also Negotiates: 서버에서 변형을 협상하는 과정에서 오류가 발생했음을 나타냅니다.
- 507 Insufficient Storage: (WebDAV) 서버가 요청을 완료하는 데 필요한 저장소를 충족할 수 없음을 나타냅니다.
- 508 Loop Detected: (WebDAV) 서버가 무한 루프를 감지했음을 나타냅니다.
- 510 Not Extended: 요청에 필요한 확장이 서버에서 지원되지 않음을 나타냅니다.
- 511 Network Authentication Required: 네트워크 접근을 위해 클라이언트가 인증해야 함을 의미합니다.
이 목록은 HTTP 상태 코드의 일반적인 내용을 포함하고 있으며, 특정 구현이나 확장에 따라 더 많은 상태 코드가 있을 수 있습니다.
Share article