HTTP status codes are three-digit responses from web servers indicating the result of a request. They are grouped into five classes based on the first digit.
1xx Informational | 2xx Success | 3xx Redirection | 4xx Client Error | 5xx Server Error
1xx Informational
Request received, continuing process
| Code | Name | Description |
|---|---|---|
| 100 | Continue | Server received request headers; client should proceed with body |
| 101 | Switching Protocols | Server is switching protocols as requested (e.g., to WebSocket) |
| 102 | Processing | Server has received request but not yet completed (WebDAV) |
| 103 | Early Hints | Used with Link header to preload resources while server prepares response |
2xx Success
Request successfully received, understood, and accepted
| Code | Name | Description |
|---|---|---|
| 200COMMON | OK | Standard success response. Body contains requested resource |
| 201COMMON | Created | Request succeeded and new resource was created (POST/PUT) |
| 202 | Accepted | Request accepted for processing but not yet completed |
| 203 | Non-Authoritative Info | Metadata from third-party copy, not origin server |
| 204COMMON | No Content | Success with no body to return. Common for DELETE requests |
| 205 | Reset Content | Success; client should reset the document view |
| 206 | Partial Content | Range request successful; body contains requested ranges |
| 207 | Multi-Status | Multiple status codes for multiple resources (WebDAV) |
| 208 | Already Reported | DAV binding already enumerated; prevents repeated listings |
| 226 | IM Used | Server fulfilled GET request with instance-manipulations |
3xx Redirection
Further action needed to complete the request
| Code | Name | Description |
|---|---|---|
| 300 | Multiple Choices | Multiple options for the resource; client may choose one |
| 301COMMON | Moved Permanently | Resource permanently moved. Use for permanent URL changes (SEO-friendly) |
| 302COMMON | Found | Temporary redirect. Method may change to GET (historically) |
| 303 | See Other | Redirect with GET to different URI (e.g., after POST) |
| 304COMMON | Not Modified | Cached version is still valid; no body sent |
| 305 | Use Proxy | Deprecated. Resource only available through proxy |
| 307 | Temporary Redirect | Temporary redirect; method and body unchanged |
| 308 | Permanent Redirect | Permanent redirect; method and body unchanged (like 301 but stricter) |
301/308: Permanent (cached by browsers, SEO passes link equity). 302/307: Temporary (not cached, SEO keeps original).
301/302: May change POST to GET. 307/308: Method preserved (use for API redirects).
4xx Client Errors
Request contains bad syntax or cannot be fulfilled
| Code | Name | Description |
|---|---|---|
| 400COMMON | Bad Request | Malformed request syntax, invalid parameters |
| 401COMMON | Unauthorized | Authentication required. Include WWW-Authenticate header |
| 402 | Payment Required | Reserved for future use (digital payment systems) |
| 403COMMON | Forbidden | Server understood but refuses. Unlike 401, authenticating won't help |
| 404COMMON | Not Found | Resource does not exist at this URI |
| 405 | Method Not Allowed | HTTP method not supported for this resource |
| 406 | Not Acceptable | Resource cannot satisfy Accept headers |
| 407 | Proxy Auth Required | Like 401 but for proxy server authentication |
| 408 | Request Timeout | Server timed out waiting for the request |
| 409 | Conflict | Request conflicts with current state (e.g., edit conflict) |
| 410 | Gone | Resource permanently deleted. Unlike 404, it existed before |
| 411 | Length Required | Content-Length header required |
| 412 | Precondition Failed | Precondition header (If-Match, etc.) evaluated to false |
| 413 | Payload Too Large | Request body exceeds server limits |
| 414 | URI Too Long | Request URI exceeds server limits |
| 415 | Unsupported Media Type | Content-Type not supported by the endpoint |
| 416 | Range Not Satisfiable | Range header cannot be satisfied |
| 417 | Expectation Failed | Expect header cannot be met by server |
| 418 | I'm a Teapot | April Fools' joke (RFC 2324). Sometimes used to reject bots |
| 421 | Misdirected Request | Request directed at server unable to produce response |
| 422COMMON | Unprocessable Entity | Well-formed but semantically invalid (validation errors) |
| 423 | Locked | Resource is locked (WebDAV) |
| 424 | Failed Dependency | Request failed due to previous request failure (WebDAV) |
| 425 | Too Early | Server unwilling to process potentially replayed request |
| 426 | Upgrade Required | Client should upgrade to different protocol |
| 428 | Precondition Required | Server requires request to be conditional |
| 429COMMON | Too Many Requests | Rate limiting. Check Retry-After header |
| 431 | Headers Too Large | Request headers exceed server limits |
| 451 | Unavailable For Legal | Resource blocked for legal reasons (censorship, DMCA) |
401 Unauthorized: Identity unknown. Provide credentials and retry.
403 Forbidden: Identity known but not permitted. Re-authenticating won't help.
5xx Server Errors
Server failed to fulfill a valid request
| Code | Name | Description |
|---|---|---|
| 500COMMON | Internal Server Error | Generic server error. Check server logs for details |
| 501 | Not Implemented | Server doesn't support functionality required |
| 502COMMON | Bad Gateway | Invalid response from upstream server (proxy/gateway) |
| 503COMMON | Service Unavailable | Server overloaded or down for maintenance |
| 504COMMON | Gateway Timeout | Upstream server didn't respond in time |
| 505 | HTTP Version Not Supported | Server doesn't support the HTTP version used |
| 506 | Variant Also Negotiates | Transparent content negotiation circular reference |
| 507 | Insufficient Storage | Server cannot store representation (WebDAV) |
| 508 | Loop Detected | Infinite loop detected while processing (WebDAV) |
| 510 | Not Extended | Further extensions required for the request |
| 511 | Network Auth Required | Client must authenticate to gain network access (captive portal) |
Unofficial but Common Codes
| Code | Name | Used By |
|---|---|---|
| 520 | Web Server Unknown Error | Cloudflare |
| 521 | Web Server Is Down | Cloudflare |
| 522 | Connection Timed Out | Cloudflare |
| 523 | Origin Is Unreachable | Cloudflare |
| 524 | A Timeout Occurred | Cloudflare |
| 525 | SSL Handshake Failed | Cloudflare |
| 526 | Invalid SSL Certificate | Cloudflare |
| 530 | Site Frozen | Pantheon |