HTTP Status Codes Cheat Sheet
Informational Responses
| Status Code | Reason Phrase | Meaning | HTTP Version |
|---|---|---|---|
| 100 | Continue | The client should continue to send the request. This temporary response is used to notify the client that part of its request has been received by the server and has not yet been rejected. The client should continue to send the remainder of the request, or if the request is already complete, ignore this response. The server must send a final response after the request is complete. | HTTP/1.1 Available |
| 101 | Switching Protocols | The server has understood the client’s request and will notify the client through the Upgrade message header to use a different protocol to complete the request. After sending the last empty line of this response, the server will switch to the protocols defined in the Upgrade message header. This measure should only be taken when switching to a new protocol is more advantageous. For example, switching to a new version of HTTP is more advantageous than an older version, or switching to a real-time, synchronous protocol to deliver resources utilizing such features. | HTTP/1.1 Available |
Successful Responses
| Status Code | Reason Phrase | Meaning | HTTP Version |
|---|---|---|---|
| 200 | OK | The request was successful. The meaning of success varies depending on the method used by the request.- GET: The resource has been extracted and returned to the client as the response body.- HEAD: The entity header has been returned to the client as the response header.- POST: After the server processes the data sent by the client, the appropriate resource is returned to the client as the response body.- TRACE: The request message received by the server is returned to the client as the response body. | HTTP/0.9 Available |
| 201 | Created | The request was successful, and a new resource has been created based on the needs of the request. This is usually the response code obtained by the PUT method. | HTTP/0.9 Available |
| 202 | Accepted | The server has accepted the request but has not yet processed it. Just as it might be rejected, the request may or may not ultimately be executed. In asynchronous operations, there is no more convenient way than to send this status code. The Purpose of returning a 202 status code response is to allow the server to accept requests for other processes (e.g., a batch operation that only runs once a day) without having to keep the client connected until the batch operation is complete. The response returning the 202 status code should include some information indicating the current state of the processing in the entity, and a pointer to a processing state monitor or state prediction, so that the user can estimate whether the operation has been completed. | HTTP/0.9 Available |
| 203 | Non-Authoritative Information | The server has successfully processed the request, but the entity header meta-information returned is not a deterministic set valid on the origin server, but comes from a local or third-party copy. If this is not the case, using the 200 status code is most appropriate. | HTTP/0.9 and 1.1 |
| 204 | No Content | There is no response content, only response headers. The response headers may also be useful. User agents can update the cache information of corresponding resources based on the new response headers. | HTTP/0.9 Available |
| 205 | Reset Content | Tells the user agent to reset the document view of the window that sent the request. | HTTP/1.1 Available |
| 206 | Partial Content | This status code is used when the client downloads files in segments by using the range header field. | HTTP/1.1 Available |
Redirection Messages
| Status Code | Reason Phrase | Meaning | HTTP Version |
|---|---|---|---|
| 300 | Multiple Choice | There are multiple possible responses to the request, and the user agent or user must choose one of them. The server does not have any standards to follow to replace the user in making the choice. | HTTP/1.0 and later |
| 301 | Moved Permanently | This status code indicates that the requested URI resource path has changed, and the new URL will be found in the Location header field of the response. |
HTTP/0.9 Available |
| 302 | Found | This status code indicates that the requested URI resource path has changed temporarily, and it may continue to change. Therefore, the client should continue to use this URI for future access. The new URL will be found in the Location: header field of the response. |
HTTP/0.9 Available |
| 303 | See Other | The server sends this response to guide the client to use the GET method to access another URI. | HTTP/0.9 and 1.1 |
| 304 | Not Modified | Tells the client that the requested content has not changed since the last access. The client can obtain the resource directly from the browser cache. | HTTP/0.9 Available |
| 305 | Use Proxy | The requested resource must be accessed via a proxy. For security reasons, this status code is not widely supported. | HTTP/1.1 Available |
| 306 | unused | This status code is no longer used; it was originally used in older versions of the HTTP 1.1 specification. | HTTP/1.1 Available |
| 307 | Temporary Redirect | The server sends this response to guide the client to use the same method to access another URI to obtain the desired resource. The new URL will be found in the Location: header field of the response. It has the same semantics as the 302 status code, and the same method (GET, POST) must be used for both accesses. |
HTTP/1.1 Available |
| 308 | Permanent Redirect | The requested resource will be permanently located on another URI. The new URL will be found in the Location: header field of the response. It has the same semantics as the 301 status code, and the same method (GET, POST) must be used for both accesses. |
HTTPbis (Experimental Draft) |
Client Error Responses
| Status Code | Reason Phrase | Meaning | HTTP Version |
|---|---|---|---|
| 400 | Bad Request | The server cannot read the request normally due to a syntax error in the request sent. | HTTP/0.9 Available |
| 401 | Unauthorized | Authentication is required to obtain the requested content, similar to a 403 error. The difference is that after a 401 error, authentication can be passed as long as the correct account and password are entered. | HTTP/0.9 Available |
| 402 | Payment Required | This status code is reserved for future use. The initial purpose of creating this code was for digital payment systems; however, it has not yet been put into use. | HTTP/0.9 and 1.1 |
| 403 | Forbidden | The client does not have the right to access the requested content, and the server refuses the request. | HTTP/0.9 Available |
| 404 | Not Found | The server cannot find the requested resource. Since this happens frequently, this status code is very common while browsing the web. | HTTP/0.9 Available |
| 405 | Method Not Allowed | The method used by the request is prohibited by the server. RFC2616 stipulates that GET and HEAD methods cannot be prohibited. |
HTTP/1.1 Available |
| 406 | Not Acceptable | No suitable content was found to be returned to the client after server-driven content negotiation. | HTTP/1.1 Available |
| 407 | Proxy Authentication Required | Similar to status code 401, but authentication is required through a proxy. | HTTP/1.1 Available |
| 408 | Request Timeout | The client did not complete the sending of a request within the time the server was prepared to wait. This means that the server will cut the connection with the client. This response is more common in other browsers, such as Chrome and IE9, for the purpose of speeding up browsing speeds using the HTTP pre-connection mechanism. Also note that some servers cut the connection directly without sending such a response. | HTTP/1.1 Available |
| 409 | Conflict | This request conflicts with the current state of the server. | HTTP/1.1 Available |
| 410 | Gone | The requested resource has been deleted. | HTTP/1.1 Available |
| 411 | Length Required | The server refuses the request because it requires the Content-Length header field in this request, but the client did not send it. |
HTTP/1.1 Available |
| 412 | Precondition Failed | The server failed to meet the preconditions set by the client in the request header fields when obtaining the resource. | HTTP/1.1 Available |
| 413 | Request Entity Too Large | The request entity size exceeds the maximum limit set by the server; the server may close the HTTP connection and return the Retry-After header field. |
HTTP/1.1 Available |
| 414 | Request-URI Too Long | The URI address contained in the client request is too long for the server to process. | HTTP/1.1 Available |
| 415 | Unsupported Media Type | The server does not support the media type requested by the client and therefore refuses the request. | HTTP/1.1 Available |
| 416 | Requested Range Not Satisfiable | The Range header field included in the request cannot be satisfied, usually because the number range in Range exceeds the size of the requested resource. |
HTTP/1.1 Available |
| 417 | Expectation Failed | The expected content specified in the request header Expect cannot be satisfied by the server. |
HTTP/1.1 Available |
Server Error Responses
| Status Code | Reason Phrase | Meaning | HTTP Version |
|---|---|---|---|
| 500 | Internal Server Error | The server encountered an unknown, unsolvable problem. | HTTP/0.9 Available |
| 501 | Not Implemented | The server does not support the method used in the request, such as POST and PUT. Only GET and HEAD are the methods that the server must implement as specified in the RFC2616 specification. |
HTTP/0.9 Available |
| 502 | Bad Gateway | The server acts as a gateway and receives an invalid HTTP response from the upstream server. | HTTP/0.9 Available |
| 503 | Service Unavailable | The server is currently unable to handle the request due to temporary server maintenance or overload. This situation is temporary and will recover after a period of time. If the delay time can be estimated, the response can include a Retry-After: header to indicate this delay time. If no Retry-After: information is given, the client should handle it as a 500 response. Meanwhile, in this case, a friendly page explaining the problem with the server should be returned, and cache-related HTTP header information should also be included, as usually such error tip pages should not be cached by the client. |
HTTP/0.9 Available |
| 504 | Gateway Timeout | The server acts as a gateway and cannot get a timely response from the upstream server to return to the client. | HTTP/1.1 Available |
| 505 | HTTP Version Not Supported | The server does not support the version of the HTTP protocol used in the HTTP request sent by the client. | HTTP/1.1 Available |