HTTP Status Codes Cheatsheet
A complete reference of all standard HTTP response status codes. Each code indicates whether a specific HTTP request has been successfully completed, redirected, or resulted in an error.
1xx Informational
The request was received and the process is continuing.
| Code | Name | Description |
|---|---|---|
| 100 | Continue | The server has received the request headers. The client should proceed to send the request body. |
| 101 | Switching Protocols | The server is switching protocols as requested by the client (e.g., upgrading to WebSocket). |
| 102 | Processing | The server has received and is processing the request, but no response is available yet (WebDAV). |
| 103 | Early Hints | Used to return some response headers before the final HTTP message. Allows preloading resources. |
2xx Success
The request was successfully received, understood, and accepted.
| Code | Name | Description |
|---|---|---|
| 200 | OK | The request succeeded. The meaning depends on the HTTP method used. |
| 201 | Created | The request succeeded and a new resource was created. Typically used after POST or PUT requests. |
| 202 | Accepted | The request has been accepted for processing, but processing is not yet complete. |
| 203 | Non-Authoritative Information | The returned metadata is not exactly the same as available from the origin server. |
| 204 | No Content | The server successfully processed the request but is not returning any content. |
| 205 | Reset Content | The server successfully processed the request and asks the client to reset the document view. |
| 206 | Partial Content | The server is delivering only part of the resource due to a range header sent by the client. |
| 207 | Multi-Status | Conveys information about multiple resources where multiple status codes might be appropriate (WebDAV). |
| 208 | Already Reported | Members of a DAV binding have already been enumerated and are not included again (WebDAV). |
| 226 | IM Used | The server has fulfilled a GET request and the response is a representation of one or more instance-manipulations. |
3xx Redirection
Further action must be taken to complete the request.
| Code | Name | Description |
|---|---|---|
| 300 | Multiple Choices | The request has more than one possible response. The user or user agent should choose one. |
| 301 | Moved Permanently | The URL of the requested resource has been changed permanently. The new URL is given in the response. |
| 302 | Found | The URI of the requested resource has been changed temporarily. The client should use the same method for future requests. |
| 303 | See Other | The server sent this response to direct the client to get the requested resource at another URI with a GET request. |
| 304 | Not Modified | Used for caching. The response has not been modified, so the client can continue to use the cached version. |
| 305 | Use Proxy | The requested resource must be accessed through the proxy given in the Location header. Deprecated. |
| 307 | Temporary Redirect | The server sends this response to direct the client to get the requested resource at another URI with the same method. |
| 308 | Permanent Redirect | The resource is now permanently located at another URI. The same HTTP method must be used as in the prior request. |
4xx Client Error
The request contains bad syntax or cannot be fulfilled by the server.
| Code | Name | Description |
|---|---|---|
| 400 | Bad Request | The server cannot process the request due to malformed syntax, invalid framing, or deceptive routing. |
| 401 | Unauthorized | The client must authenticate itself to get the requested response. Similar to 403 but authentication is possible. |
| 402 | Payment Required | Reserved for future use. Originally created for digital payment systems. |
| 403 | Forbidden | The client does not have access rights to the content. Unlike 401, the server knows the client's identity. |
| 404 | Not Found | The server cannot find the requested resource. The URL is not recognized or the endpoint is valid but the resource does not exist. |
| 405 | Method Not Allowed | The request method is known by the server but not supported by the target resource (e.g., DELETE on a read-only resource). |
| 406 | Not Acceptable | The server cannot produce a response matching the list of acceptable values defined in the request's Accept headers. |
| 407 | Proxy Authentication Required | Authentication is needed with the proxy before the request can be fulfilled. |
| 408 | Request Timeout | The server timed out waiting for the request. The client did not produce a request within the expected time. |
| 409 | Conflict | The request conflicts with the current state of the server, such as an edit conflict in a resource. |
| 410 | Gone | The content has been permanently deleted from the server with no forwarding address. |
| 411 | Length Required | The server rejected the request because the Content-Length header field is not defined. |
| 412 | Precondition Failed | The server does not meet one of the preconditions indicated in the request headers. |
| 413 | Content Too Large | The request entity is larger than limits defined by server. The server might close the connection. |
| 414 | URI Too Long | The URI requested by the client is longer than the server is willing to interpret. |
| 415 | Unsupported Media Type | The media format of the requested data is not supported by the server. |
| 416 | Range Not Satisfiable | The range specified by the Range header field cannot be fulfilled. The range may be outside the size of the target resource. |
| 417 | Expectation Failed | The expectation indicated by the Expect request-header field cannot be met by the server. |
| 418 | I'm a Teapot | The server refuses to brew coffee because it is, permanently, a teapot. Defined in RFC 2324 as an April Fools' joke. |
| 421 | Misdirected Request | The request was directed at a server that is not able to produce a response. |
| 422 | Unprocessable Content | The request was well-formed but the server was unable to process the contained instructions. |
| 423 | Locked | The resource that is being accessed is locked (WebDAV). |
| 424 | Failed Dependency | The request failed because it depended on another request that failed (WebDAV). |
| 425 | Too Early | The server is unwilling to risk processing a request that might be replayed. |
| 426 | Upgrade Required | The server refuses to perform the request using the current protocol but might after the client upgrades. |
| 428 | Precondition Required | The server requires the request to be conditional to prevent lost update problems. |
| 429 | Too Many Requests | The user has sent too many requests in a given amount of time (rate limiting). |
| 431 | Request Header Fields Too Large | The server is unwilling to process the request because its header fields are too large. |
| 451 | Unavailable For Legal Reasons | The user requested a resource that is not available due to legal reasons, such as censorship or government-mandated blocks. |
5xx Server Error
The server failed to fulfill a valid request.
| Code | Name | Description |
|---|---|---|
| 500 | Internal Server Error | The server has encountered a situation it does not know how to handle. |
| 501 | Not Implemented | The request method is not supported by the server and cannot be handled. |
| 502 | Bad Gateway | The server, while acting as a gateway or proxy, received an invalid response from the upstream server. |
| 503 | Service Unavailable | The server is not ready to handle the request. Common causes are maintenance or overloading. |
| 504 | Gateway Timeout | The server is acting as a gateway and cannot get a response from the upstream server in time. |
| 505 | HTTP Version Not Supported | The HTTP version used in the request is not supported by the server. |
| 506 | Variant Also Negotiates | The server has an internal configuration error: transparent content negotiation results in a circular reference. |
| 507 | Insufficient Storage | The server is unable to store the representation needed to complete the request (WebDAV). |
| 508 | Loop Detected | The server detected an infinite loop while processing the request (WebDAV). |
| 510 | Not Extended | Further extensions to the request are required for the server to fulfill it. |
| 511 | Network Authentication Required | The client needs to authenticate to gain network access, often seen with captive portals. |