HTTP Status Codes
Industry specifications and standards
100 Continue
- This response means that the Web server hosting the website has received the first part of an HTTP request and that the client (a Web browser, for instance) should continue by sending the rest of the request. This is an interim response, and the server will send a final response when the request is completed.
101 Switching Protocols
- This response is used when the client issues an HTTP request to switch protocols (from an older version of HTTP to a newer version, perhaps) and the Web server hosting the website is willing to comply.
102 Processing
- This interim response indicates that the Web server hosting the website has received and is processing the HTTP request sent by the client. This response is usually only sent when the Web server has reason to believe the request will take a long time to complete.
200 OK
- When the Web server hosting the website responds with this status code, it means it has successfully completed the HTTP request sent by the client. This response might be used when the server successfully completes a GET request from the client and returns the requested resource (a website, perhaps).
201 Created
- This response means that the Web server hosting the website has fulfilled the HTTP request sent by the client, resulting in the creation of a new resource (a Web page, perhaps) on the server. The response should include the new resource’s Web address, or URL
202 Accepted
- When the client receives this response from the Web server hosting the website, it means the HTTP request has been accepted for processing. This does not necessarily mean the request will be completed; it could be disallowed when processing occurs.
203 Non-Authoritative Information
- This status code means the Web server hosting the website has completed the HTTP request sent by the client, but some of the data returned is from a third party and not the server processing the request. In every other way, it is like a 200 OK response.
204 No Content
- When the Web server hosting the website responds with this status code, it means that it has successfully processed the request sent by the client but does not need to return any content. This response might be used when the server successfully completes a DELETE request from the client and has no content to return.
205 Reset Content
- This status code means that the Web server hosting the website has successfully processed the request sent by the client and has no content to return. Unlike a 204 No Content response, however, the 205 Reset Content response instructs the client to reset the document view or refresh the Web page. This response might be used to clear a form to allow for a second input action to take place.
206 Partial Content
- This status code means the Web server hosting the website has completed the partial GET request sent by the client and is returning only part of the requested resource (part of an image or a video, for example). This occurs when the client’s request contains a range header, which is often used to download data in parts.
207 Multi-Status
- This response is used when the client makes a request with multiple sub-requests. The Web server hosting the website might respond in the form of an XML message containing different status codes corresponding to the different sub-requests.
208 Already Reported
- This status code means the Web server hosting the website has returned the data requested by the client in a previous response to the same request and therefore will not return the same data again. This can help to prevent the formation of an endless loop.
226 IM Used
- This status code means the Web server hosting the website has completed the request sent by the client and is returning the requested resource. However, it is not returning the version of the resource that currently exists on the server. Instead, it has determined the changes that were made to the resource since it was last accessed by the client, applied those changes to the older version of the resource that was cached (or saved) by the client, and is returning the result. This is called an instance manipulation.
300 Multiple Choices
- This response indicates that the Web server hosting the website thinks that the URL provided by the client is not specific enough and that the user must choose between a number of options. This response might be used when the URL provided points to a directory rather than a specific resource.
301 Moved Permanently
- This response is returned when the Web server hosting the website believes that the URL provided by the client has been permanently redirected to a different URL. The client is expected to try the new URL immediately.
302 Found
- This response means that the resource requested by the client is temporarily located at a different URL. The client is expected to send a second request for the resource using the temporary URL but should continue to use the original URL in future requests.
303 See Other
- This response means that the resource requested by the client is available at a different URL and the client is expected to retrieve the resource using a GET request. Some clients do not understand the 303 response, in which case the 302 response can be used instead.
304 Not Modified
- A client might send a conditional GET request for a resource to the Web server hosting the website to find out if the resource has been modified since it was last accessed. If the resource has not been modified since the date specified in the client’s request, the server might return a 304 Not Modified status code. This means that the resource does not need to be retransmitted because the client still has a cached (or saved) version that is up to date.
305 Use Proxy
- With this response, the Web server hosting the website is telling the client that the requested resource needs to be accessed using a different URL on a proxy server. The client is expected to send a second request using the proxy’s URL.
306 Switch Proxy
- This response was once used to indicate that the client should use a specified proxy server in future HTTP requests. This status code is no longer used.
307 Temporary Redirect
- If the Web server hosting the website sends this response to the client, it means that the requested resource can be found at a different URL. Because the redirect is temporary, the client should continue to use the original URL in future requests. Unlike in a 303 See Other response, a GET request method is not mandated, so a client can request to access the resource using any method.
308 Permanent Redirect
- This response means that the requested resource has been moved to another URL and the client should make a second request using the new URL. All future requests should also use the new URL. This response is similar to 301 Moved Permanently status code, but this response mandates that the second request must use the same HTTP method as the first request.
400 Bad Request
- The Web server hosting the website might send this response to the client if it believes the request sent by the client was not formed correctly or did not respect the HTTP protocol completely. A 400 Bad Request status code means the server was unable to understand or process the request.
401 Unauthorized
- When the Web server hosting the website returns this status code, it means the request sent by the client was received and understood. However, the request will not be fulfilled because the proper user authentication needed to access the resource has not been provided. Sometimes, this means that a user must log in before gaining access to the resource.
402 Payment Required
- This status code was originally intended to be used in digital payment systems but is not currently in use. It is reserved for future use.
403 Forbidden
- If the Web server hosting the website returns this status code, it means it has received and understood the request sent by the client but is refusing to fulfill it. This occurs when the server is configured to deny access to the requested resource.
404 Not Found
- This response is meant to convey that the Web server hosting the website has received and understood the request sent by the client, but it was unable to find the requested resource.
405 Method Not Allowed
- Servers can be configured to allow or disallow various HTTP methods. This status code means that the method specified in the request sent by the client has been disallowed on the Web server hosting the website.
406 Not Acceptable
- This status code means that the requested resource has characteristics that are in conflict with the parameters specified in the request sent by the client. The server sends this response because the client cannot accept the resource.
407 Proxy Authentication Required
- When the Web server hosting the website returns this status code, it means it has received and understood the request sent by the client, but the requested resource exists on a proxy server that requires authentication that has not been provided.
408 Request Timeout
- This response means that a connection was established between the client and the Web server hosting the website, but no request was received from the client within the amount of time the server was willing to wait.
409 Conflict
- This status code indicates that the Web server hosting the website was unable to complete the request sent by the client because it is in conflict with a rule that has already been established. This response might be used if an individual tries to upload a new version of a resource that is in conflict with previous edits./li>
410 Gone
- The Web server hosting the website might return this status code if the requested resource is no longer available on the server or at any known URL. It differs from a 404 Not Found response in that the server recognizes which resource is being requested but cannot fulfill the request because said resource no longer exists on the server.
411 Length Required
- This status code means the Web server hosting the website will not fulfill the request sent by the client unless it specifies the length of the message body in the request. This response might be used if the client is attempting to upload data to the server.
412 Precondition Failed
- This response means the Web server hosting the website detected that a precondition specified in the request sent by the client was not met. Therefore, it cannot fulfill the request.
413 Request Entity Too Large
- This response indicates that the request sent by the client was too large for the Web server hosting the website to process. This error might occur if the client attempts to upload a file that is deemed too large by the server.
414 Request-URI Too Long
- The Web server hosting the website might return this status code if the request sent by the client (a Web browser, for instance) contains a URL that it deems too long.
415 Unsupported Media Type
- This response means that the Web server hosting the website does not support the media type that was transmitted by the client.
416 Requested Range Not Satisfiable
- TThe Web server hosting the website might return this status code if the request sent by the client specified a range and the requested resource (an image or a video, perhaps) cannot satisfy this range. This response might be used if a client issues a partial GET request (for bytes 800-1000, say) while downloading a video and the video doesn’t cover the requested range (because it is only 900 bytes in size, for example).
417 Expectation Failed
- If the Web server hosting the website returns this status code, it means it cannot complete the request sent by the client because the server cannot meet the expectations specified in the request.
418 I’m a Teapot
- This status code was introduced on April 1, 1998, by the IETF (Internet Engineering Task Force) when they launched HTCPCP/1.0 (Hypertext Coffee Pot Control Protocol). The idea was that the Web server hosting the website should return this response if the client attempted to brew coffee with a teapot. It was an April Fools’ joke and it is not typically used.
420 Method Failure
- This is not a standard HTTP status code defined by the IETF (Internet Engineering Task Force). Rather, it was defined in the HttpStatus class of the Spring application framework. It was meant to be returned when a client employs an HTTP request method that fails. The status code is deprecated by Spring, meaning it has been replaced by more useful status codes.
422 Unprocessable Entity
- The Web server hosting the website might return this status code if the request sent by the client was formed correctly but still cannot be processed because of a semantic error.
423 Locked
- The Web server hosting the website might return this response when the client attempts to commit changes to a resource that is locked and therefore not accessible.
424 Failed Dependency
- This response means the Web server hosting the website cannot complete the request sent by the client because the requested action depends on a previous action that has failed.
426 Upgrade Required
- This response indicates that the Web server hosting the website believes that protocol upgrades are necessary for the request sent by the client to be completed.
428 Precondition Required
- This response is meant to convey that the Web server hosting the website requires the request sent by the client to be conditional for it to be completed. A common use for this response is when two clients have modified a document at the same time. A conditional request can ensure that a client is working with the correct version of a resource.
429 Too Many Requests
- The Web server hosting the website might return this response if the client sends too many requests over a certain amount of time, exceeding the limit set by the server.
431 Request Header Fields Too Large
- The Web server hosting the website might return this status code if the request header fields in the request sent by the client are too large. This response can be used whether only one request header field is too large or the number of request header fields in general is too large.
440 Login Timeout
- This status code is not a standard HTTP server response. It is a Microsoft extension that is meant to indicate that a user’s session has timed out and they are no longer logged in.
444 No Response
- This response is an Nginx (a Web server pronounced “Engine-X”) HTTP extension. The server returns the status code and no other information to the client, then closes the connection. This response is used to deter malware.
500 Internal Server Error
- If the Web server hosting the website returns this response, it means it has run into an unexpected problem that prevents it from completing the request sent by the client. Something went wrong, but the server cannot give the client more information about the nature of the problem. Instead, the server will generally record the problem in more detail in an internal error log so that the website owners can attend to these problems.
501 Not Implemented
- This response might be returned if the Web server hosting the website does not recognize the method specified in the request sent by the client and is simply not capable of carrying it out for any resources.
502 Bad Gateway
- The Web server hosting the website might send this response if it is acting as a gateway or proxy and it receives an invalid response from another server it accessed in an attempt to fulfill the request sent by the client.
503 Service Unavailable
- This response is an indication that the Web server hosting the website cannot complete the request sent by the client at this time due to maintenance or an overload, rendering the server temporarily unavailable.
504 Gateway Timeout
- This response means that the Web server hosting the website is acting as a gateway or proxy and it did not receive a response from another server it accessed in an attempt to fulfill the request sent by the client, usually because the upstream server is down.
505 HTTP Version Not Supported
- The Web server hosting the website might respond with this status code if it doesn’t support the version of HTTP the client used in its request. Often, the response will include information regarding which versions of the protocol are supported by the server.
511 Network Authentication Required
- When the Web server hosting the website responds with this status code, it means that the client must authenticate in order to gain network access. The response will usually contain a link that leads to a resource that lets the user submit credentials.