HTTP Status Codes¶
Useful information about each kind of HTTP response code.
Inspired by awesome lists and RFCs.
Quick ranges
- 1xx — Informational (request received, continuing)
- 2xx — Success
- 3xx — Redirection
- 4xx — Client error
- 5xx — Server error
Legend¶
- Code — numeric status code
- Title — canonical reason phrase
- Notes — short explanation and typical usage
Informational — 1xx¶
| Code | Title | Notes |
|---|---|---|
| 100 | Continue | Client should continue the request (after Expect: 100-continue). |
| 101 | Switching Protocols | Server is switching protocols (e.g., HTTP → WebSocket). |
| 102 | Processing | (WebDAV) Server has received and is processing the request. |
| 103 | Early Hints | Hints to help the client start preloading resources. |
Success — 2xx¶
These codes indicate a successful action. If a body is present, it is the representation of the result.
| Code | Title | Notes |
|---|---|---|
| 200 | OK | Standard success response. |
| 201 | Created | Resource created (often in response to POST); Location header points to the new URI. |
| 202 | Accepted | Request accepted for processing, but not yet completed (asynchronous). |
| 203 | Non-Authoritative Information | Payload metadata may be from a transforming proxy/cached copy. |
| 204 | No Content | No body returned; client should stay on the same view. |
| 205 | Reset Content | No body; instructs the client to reset the document view. |
| 206 | Partial Content | Partial response to a range request. |
| 207 | Multi-Status | (WebDAV) Multiple status codes for independent operations. |
| 208 | Already Reported | (WebDAV) Members already reported in a prior response. |
| 226 | IM Used | Response is the result of instance-manipulations. |
Redirection — 3xx¶
Client needs to take additional action to complete the request.
| Code | Title | Notes |
|---|---|---|
| 301 | Moved Permanently | Resource has a new permanent URI. Update links/bookmarks. |
| 302 | Found | Temporarily under a different URI (historically similar to 307). |
| 303 | See Other | Redirect to another URI using GET (e.g., after POST). |
| 304 | Not Modified | Resource not modified; use cached version. |
| 305 | Use Proxy | Deprecated; switch to a specified proxy. |
| 306 | Switch Proxy | Unused/Reserved. |
| 307 | Temporary Redirect | Same method; temporary different URI. |
| 308 | Permanent Redirect | Same method; permanent different URI. |
Client Errors — 4xx¶
The request seems to contain an error from the client’s side.
| Code | Title | Notes |
|---|---|---|
| 400 | Bad Request | Malformed request syntax or invalid message framing. |
| 401 | Unauthorized | Authentication required or failed. |
| 402 | Payment Required | Reserved for future use (rarely used). |
| 403 | Forbidden | Understood, but refused (authorization won’t help). |
| 404 | Not Found | Resource not found at the given URI. |
| 405 | Method Not Allowed | HTTP method not supported for the resource. |
| 406 | Not Acceptable | No acceptable representation per Accept headers. |
| 407 | Proxy Authentication Required | Authenticate with the proxy first. |
| 408 | Request Timeout | Server timed out waiting for the request. |
| 409 | Conflict | Request conflicts with current state of the target. |
| 410 | Gone | Resource permanently removed; no forwarding address. |
| 411 | Length Required | Content-Length header required. |
| 412 | Precondition Failed | Failed preconditions in request headers (e.g., If-Match). |
| 413 | Content Too Large | Payload too large (a.k.a. Payload Too Large). |
| 414 | URI Too Long | URI exceeds server limits. |
| 415 | Unsupported Media Type | Unsupported Content-Type. |
| 416 | Range Not Satisfiable | Invalid/unsatisfiable range. |
| 417 | Expectation Failed | Server cannot meet Expect header requirements. |
| 418 | I'm a Teapot | RFC 2324 (April 1, 1998) — easter egg. |
| 421 | Misdirected Request | Target not able to produce a response (e.g., SNI mismatch). |
| 422 | Unprocessable Content | Semantic errors (WebDAV; standardized in RFC 9110). |
| 423 | Locked | (WebDAV) Resource is locked. |
| 424 | Failed Dependency | (WebDAV) Due to failure of a previous request. |
| 426 | Upgrade Required | Switch to a different protocol (e.g., TLS). |
| 428 | Precondition Required | Origin requires conditional requests. |
| 429 | Too Many Requests | Rate limiting — too many requests in a given time. |
| 431 | Request Header Fields Too Large | Headers too large. |
| 451 | Unavailable For Legal Reasons | Blocked for legal demands (e.g., DMCA, court order). |
Vendor / non‑standard (commonly seen):
| Code | Title | Notes |
|---|---|---|
| 420 | Enhance Your Calm | Twitter rate limiting (legacy). |
| 444 | No Response | Nginx closes connection without a response. |
| 449 | Retry With | Microsoft extension — retry after action. |
| 450 | Blocked by Windows Parental Controls | Microsoft extension. |
Server Errors — 5xx¶
The server accepted the request but failed to complete it successfully.
| Code | Title | Notes |
|---|---|---|
| 500 | Internal Server Error | Unexpected condition prevented fulfillment. |
| 501 | Not Implemented | Method or capability not supported. |
| 502 | Bad Gateway | Invalid response from upstream server. |
| 503 | Service Unavailable | Temporary overload or maintenance; consider Retry-After. |
| 504 | Gateway Timeout | Upstream didn’t respond in time. |
| 505 | HTTP Version Not Supported | Selected HTTP version not supported. |
| 506 | Variant Also Negotiates | Negotiation leads to circular references. |
| 507 | Insufficient Storage | (WebDAV) Server cannot store the representation. |
| 508 | Loop Detected | (WebDAV) Infinite loop while processing. |
| 510 | Not Extended | Further extensions required. |
| 511 | Network Authentication Required | Authenticate to gain network access. |
Vendor / non‑standard:
| Code | Title | Notes |
|---|---|---|
| 509 | Bandwidth Limit Exceeded | Non-standard (often cPanel). |
| 598 | Network Read Timeout | Proxy/read timeout (non-standard). |
| 599 | Network Connect Timeout | Proxy/connect timeout (non-standard). |
Quick reference (copy‑paste)¶
1xx: 100, 101, 102, 103
2xx: 200, 201, 202, 203, 204, 205, 206, 207, 208, 226
3xx: 301, 302, 303, 304, 305, 306, 307, 308
4xx: 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 421, 422, 423, 424, 426, 428, 429, 431, 451
5xx: 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, 511