The following is a list of Hypertext Transfer Protocol (HTTP) response status codes.
The first digit of the status code specifies one of five classes of response; the bare minimum for an HTTP client is that it recognizes these five classes. The phrases used are the standard examples, but any human-readable alternative can be provided. Unless otherwise stated, the status code is part of the HTTP/1.1 standard.
1xx – Informational/Intermediate Status
The codes under this class indicates a provisional response. They consists only of the Status-Line and optional headers. They are terminated by an empty line. Since HTTP/1.0 did not define any 1xx status codes, servers must not send a 1xx response to an HTTP/1.0 client except under experimental conditions.
Message:
|
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
|
102 Checkpoint
|
This code indicates that the server has received and is processing the request, but no response is available yet.This prevents the client from timing out and assuming the request was lost.
|
103 Checkpoint
|
Used in the resumable requests proposal to resume aborted PUT or POST requests
|
122 Request-URI too long
|
A Microsoft extension which occurs only in IE7, when the request URI is longer than 2032 characters, the maximum string length.
|
2xx – Success
Message:
|
Description:
|
200 OK
|
The request is OK (this is the standard response for successful HTTP requests)
|
201 Created
|
The request has been fulfilled, and a new resource is created
|
202 Accepted
|
The request has been accepted for processing, but the processing has not been completed
|
203 Non-Authoritative Information
|
The request has been successfully processed, but is returning information that may be from another source
|
204 No Content
|
The request has been successfully processed, but is not returning any content
|
205 Reset Content
|
The request has been successfully processed, but is not returning any content, and requires that the requester 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 (WebDAV; RFC 4918)
|
The message body that follows is an XML message and can contain a number of separate response codes, depending on how many sub-requests were made.[
|
208 Already Reported (WebDAV; RFC 5842)
|
The members of a DAV binding have already been enumerated in a previous reply to this request, and are not being included again.
|
226 IM Used (RFC 3229)
|
The server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance
|
3xx – Redirection
The client must take additional action to complete the request.
This class of status code indicates that further action needs to be taken by the user agent in order to fulfill the request. The action required may be carried out by the user agent without interaction with the user if and only if the method used in the second request is GET or HEAD. A user agent should not automatically redirect a request more than five times, since such redirection usually indicate an infinite loop.
Message:
|
Description:
|
300 Multiple Choices
|
A link list. The user can select a link and go to that location. Maximum five addresses
|
301 Moved Permanently
|
The requested page has moved to a new URL
|
302 Found
|
The requested page has moved temporarily to a new URL
|
303 See Other
|
The requested page can be found under a different URL
|
304 Not Modified
|
Indicates the requested page has not been modified since last requested
|
306 Switch Proxy
|
No longer used
|
307 Temporary Redirect
|
The requested page has moved temporarily to a new URL
|
308 Resume Incomplete
|
Used in the resumable requests proposal to resume aborted PUT or POST requests
|
4xx Client Error
Message:
|
Description:
|
400 Bad Request
|
The request cannot be fulfilled due to bad syntax
|
401 Unauthorized
|
The request was a legal request, but the server is refusing to respond to it. For use when authentication is possible but has failed or not yet been provided
|
402 Payment Required
|
Reserved for future use
|
403 Forbidden
|
The request was a legal request, but the server is refusing to respond to it
|
404 Not Found
|
The requested page could not be found but may be available again in the future
|
405 Method Not Allowed
|
A request was made of a page using a request method not supported by that page
|
406 Not Acceptable
|
The server can only generate a response that is not accepted by the client
|
407 Proxy Authentication Required
|
The client must first authenticate itself with the proxy
|
408 Request Timeout
|
The server timed out waiting for the request
|
409 Conflict
|
The request could not be completed because of a conflict in the request
|
410 Gone
|
The requested page is no longer available
|
411 Length Required
|
The “Content-Length” is not defined. The server will not accept the request without it
|
412 Precondition Failed
|
The precondition given in the request evaluated to false by the server
|
413 Request Entity Too Large
|
The server will not accept the request, because the request entity is too large
|
414 Request-URI Too Long
|
The server will not accept the request, because the URL is too long. Occurs when you convert a POST request to a GET request with a long query information
|
415 Unsupported Media Type
|
The server will not accept the request, because the media type is not supported
|
416 Requested Range Not Satisfiable
|
The client has asked for a portion of the file, but the server cannot supply that portion
|
417 Expectation Failed
|
The server cannot meet the requirements of the Expect request-header field
|
418 I’m a teapot (RFC 2324)
|
This code was defined in 1998 as one of the traditional IETF April Fools’ jokes, in RFC 2324, Hyper Text Coffee Pot Control Protocol, and is not expected to be implemented by actual HTTP servers.
|
420 Enhance Your Calm (Twitter)
|
Not part of the HTTP standard, but returned by the Twitter Search and Trends API when the client is being rate limited.
|
422 Unprocessable Entity (WebDAV; RFC 4918)
|
The request was well-formed but was unable to be followed due to semantic errors.[
|
423 Locked (WebDAV; RFC 4918)
|
The resource that is being accessed is locked.
|
424 Failed Dependency (WebDAV; RFC 4918)
|
The request failed due to failure of a previous request (e.g. a PROPPATCH).
|
424 Method Failure (WebDAV)
|
Indicates the method was not executed on a particular resource within its scope because some part of the method’s execution failed causing the entire method to be aborted.
|
425 Unordered Collection (Internet draft)
|
Defined in drafts of WebDav Advanced Collections, but not present in “Web Distributed Authoring and Versioning (WebDAV) Ordered Collections Protocol”
|
426 Upgrade Required (RFC 2817)
|
The client should switch to TLS/1.0.
|
428 Precondition Required
|
The origin server requires the request to be conditional. Intended to prevent “the ‘lost update’ problem, where a client GETs a resource’s state, modifies it, and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict.
|
429 Too Many Requests
|
The user has sent too many requests in a given amount of time. Intended for use with rate limiting schemes
|
431 Request Header Fields Too Large
|
The server is unwilling to process the request because either an individual header field, or all the header fields collectively, are too large.
|
432 Request Thrashed
|
The server has received too many requests and is currently busy trying to handle them, likely causing other problems. The server’s hosed.
|
444 No Response (Nginx)
|
Used in Nginx logs to indicate that the server has returned no information to the client and closed the connection (useful as a deterrent for malware).
|
449 Retry With (Microsoft)
|
A Microsoft extension. The request should be retried after doing the appropriate action.
|
450 Blocked by Windows Parental Controls (Microsoft)
|
A Microsoft extension. Used for blocking sites with Windows Parental Controls
|
451 Unavailable For Legal Reasons (Internet draft)
|
Defined in the internet draft “A New HTTP Status Code for Legally-restricted Resources”. Intended to be used when resource access is denied for legal reasons, e.g. censorship or government-mandated blocked access. A reference to the 1953 dystopian novel Fahrenheit 451, where books are outlawed
|
451 Redirect (Microsoft)
|
Used in Exchange ActiveSync if there either is a more efficient server to use or the server can’t access the users’ mailbox.[23]
The client is supposed to re-run the HTTP Autodiscovery protocol to find a better suited server.
|
494 Request Header Too Large (Nginx)
|
Nginx internal code similar to 431 but it was introduced earlier
|
495 Cert Error (Nginx)
|
Nginx internal code used when SSL client certificate error occurred to distinguish it from 4XX in a log and an error page redirection.
|
496 No Cert (Nginx)
|
Nginx internal code used when client didn’t provide certificate to distinguish it from 4XX in a log and an error page redirection.
|
497 HTTP to HTTPS (Nginx)
|
Nginx internal code used for the plain HTTP requests that are sent to HTTPS port to distinguish it from 4XX in a log and an error page redirection.
|
499 Client Closed Request (Nginx)
|
Used in Nginx logs to indicate when the connection has been closed by client while the server is still processing its request, making server unable to send a status code back
|
5xx Server Error
Message:
|
Description:
|
500 Internal Server Error
|
A generic error message, given when no more specific message is suitable
|
501 Not Implemented
|
The server either does not recognize the request method, or it lacks the ability to fulfill the request
|
502 Bad Gateway
|
The server was acting as a gateway or proxy and received an invalid response from the upstream server
|
503 Service Unavailable
|
The server is currently unavailable (overloaded or down)
|
504 Gateway Timeout
|
The server was acting as a gateway or proxy and did not receive a timely response from the upstream server
|
505 HTTP Version Not Supported
|
The server does not support the HTTP protocol version used in the request
|
506 Variant Also Negotiates (RFC 2295)
|
The client needs to authenticate to gain network access
|
507 Insufficient Storage (WebDAV; RFC 4918)
|
The server is unable to store the representation needed to complete the request.
|
508 Loop Detected (WebDAV; RFC 5842)
|
The server detected an infinite loop while processing the request (sent in lieu of 208)
|
509 Bandwidth Limit Exceeded (Apache bw/limited extension)
|
This status code, while used by many servers, is not specified in any RFCs.
|
510 Not Extended (RFC 2774)
|
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
|
598 Network read timeout error (Unknown)
|
This status code is not specified in any RFCs, but is used by Microsoft Corp. HTTP proxies to signal a network read timeout behind the proxy to a client in front of the proxy.
|
599 Network connect timeout error (Unknown)
|
This status code is not specified in any RFCs, but is used by Microsoft Corp. HTTP proxies to signal a network connect timeout behind the proxy to a client in front of the proxy.
|