HTTP Status Codes Reference
HTTP Status Codes Cheat-Sheet
Understanding HTTP status codes is crucial for web developers and administrators to diagnose issues and ensure smooth communication between clients and servers. This cheat-sheet provides a quick reference to the different categories and specific codes.
HTTP Status Code Categories
HTTP status codes are grouped into five classes:
Code Range | Category | Description |
---|---|---|
1XX | Informational | The request was received, continuing process. |
2XX | Success | The request was successfully received, understood, and accepted. |
3XX | Redirection | Further action needs to be taken by the user agent in order to complete the request. |
4XX | Client Error | The request contains bad syntax or cannot be fulfilled. |
5XX | Server Error | The server failed to fulfill an apparently valid request. |
Complete HTTP Status Code List
Here is a detailed list of common HTTP status codes:
Code | Name | Description |
---|---|---|
100 | Continue | The server has received the request headers and the client should proceed to send the request body. |
101 | Switching Protocols | The requester has asked the server to switch protocols and the server is acknowledging that it will do so. |
102 | Processing | WebDAV; this code indicates that the server has received and is processing the request, but no response is available yet. |
103 | Early Hints | Used to send some response headers before the final HTTP message. |
200 | OK | The request has succeeded. |
201 | Created | The request has succeeded and one or more new resources have been created as a result of it. |
202 | Accepted | The request has been accepted for processing, but the processing has not been completed. |
203 | Non-Authoritative Information | A transforming-header (e.g. 'Content-Encoding') was detected and the payload has been modified by the user agent's security or other filters. |
204 | No Content | There is no content to send for this response. The response body is empty. |
205 | Reset Content | This response code is sent after a request for an action that was completed successfully. It tells the user agent to reset the document which sent this request. |
206 | Partial Content | This response code is used after a GET request that includes a range parameter to indicate that only part of the resource is being sent. |
207 | Multi-Status | A WebDAV message that explains which webdav operations were executed. |
208 | Already Reported | The members of a DAV binding have already been enumerated in a preceding part of the multi-status response. |
226 | IM Used | The server has fulfilled a GET request for the resource, and the response is a representation of the result of applying one or more instance-manipulations to the current resource. |
300 | Multiple Choices | The request has more than one possible response. User agent or user should choose one of them. |
301 | Moved Permanently | This response code means that the URI of the requested resource has been changed permanently. The new URI is given in the Location header. |
302 | Found | This response code means that the URI of the requested resource has been changed temporarily. |
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 | This is used for caching purposes. It tells the client that the response has not been modified, so the client can continue to use the same cached version of the response. |
305 | Use Proxy | Defined in a previous version of the HTTP specification. It indicates that a requested response must be accessed by a proxy. |
307 | Temporary Redirect | The server sends this response to direct the client to get the requested resource at another URI with the same method that was used in the prior request. |
308 | Permanent Redirect | This means that the resource is now permanently located at another URI, specified by the Location: HTTP Response header. |
400 | Bad Request | The server could not understand the request due to invalid syntax. |
401 | Unauthorized | The client must authenticate itself to get the requested response. |
402 | Payment Required | This is a future reserved code. It was intended for use in digital payment systems. |
403 | Forbidden | The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested information. |
404 | Not Found | The server can't find the requested resource. This is a common error. |
405 | Method Not Allowed | The request method is known by the server but is not supported by the target resource. |
406 | Not Acceptable | The response cannot be generated in a format that conforms to the list of values that the user agent accepts. |
407 | Proxy Authentication Required | The client needs to authenticate itself to a proxy. |
408 | Request Timeout | The server would like to shut down the connection because the request took too long to complete. |
409 | Conflict | This response is sent when a request conflicts with the current state of the server. |
410 | Gone | This response is sent when the requested 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, and the server requires it. |
412 | Precondition Failed | The server does not meet one of the preconditions that the requester has put before the request. |
413 | Payload Too Large | The request entity is larger than the server is willing or able to process. |
414 | Request-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 | Requested Range Not Satisfiable | The range specified by the Range header field in the request cannot be fulfilled. |
417 | Expectation Failed | The server cannot meet the requirements of the Expect request-header field. |
418 | I'm a teapot | This code was defined in 1998 as an April Fools' joke and is not expected to be implemented by actual HTTP servers. |
421 | Misdirected Request | The request was directed at a server that is not able to produce a response. |
422 | Unprocessable Entity | The request was well-formed but was unable to be followed due to semantic errors. |
423 | Locked | The resource that is being accessed is locked. |
424 | Failed Dependency | The request failed due to failure of a previous request. |
426 | Upgrade Required | The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol. |
428 | Precondition Required | The origin server requires the request to be conditional. |
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. |
444 | Connection Closed Without Response | An Nginx-specific error code that indicates the server has closed the connection without sending any response to the client. |
451 | Unavailable For Legal Reasons | The user agent requested a resource that cannot legally be provided, such as a web page censored by a government. |
499 | Client Closed Request | An Nginx-specific error code that indicates the client closed the connection before the server could send a response. |
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, did not receive a valid response from the upstream server. |
503 | Service Unavailable | The server is not ready to handle the request. This is often due to maintenance or overload. |
504 | Gateway Timeout | The server, while acting as a gateway or proxy, did not get a response in time from the upstream server. |
505 | HTTP Version Not Supported | The HTTP version used in the request is not supported by the server. |
506 | Variant Also Negotiates | Transparent content negotiation for the request results in a circular reference. |
507 | Insufficient Storage | The method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request. |
508 | Loop Detected | The server detected an infinite loop while processing the request. |
510 | Not Extended | Further extensions to the request are required for the server to fulfill it. |
511 | Network Authentication Required | Indicates that the client needs to authenticate to gain network access. |
599 | Network Connect Timeout Error | The connection timed out due to an overloaded server, a hardware error, or an infrastructure error. |