A searchable reference of all HTTP status codes with descriptions and common use cases.
The server has received the request headers and the client should proceed to send the request body.
The server is switching protocols as requested by the client via the Upgrade header.
The server has received and is processing the request, but no response is available yet. Prevents the client from timing out.
Used to return some response headers before the final HTTP message, allowing the browser to preload resources.
The request has succeeded. The meaning of the success depends on the HTTP method used.
The request has been fulfilled and a new resource has been created. Typically returned after POST or PUT requests.
The request has been accepted for processing, but the processing has not been completed. Used for asynchronous operations.
The returned metadata is not exactly the same as available from the origin server. The response is from a local or third-party copy.
The server has successfully fulfilled the request and there is no additional content to send in the response body.
The server has fulfilled the request and the client should reset the document view that caused the request to be sent.
The server is delivering only part of the resource due to a Range header sent by the client. Used for resumable downloads.
Conveys information about multiple resources where multiple status codes might be appropriate. Used in WebDAV.
Used inside a DAV: propstat response to avoid enumerating the internal members of multiple bindings to the same collection repeatedly.
The server has fulfilled a GET request and the response is a representation of the result of one or more instance-manipulations applied to the current instance.
The request has more than one possible response. The user or user agent should choose one of them.
The resource has been permanently moved to a new URL. All future requests should use the new URL.
The resource resides temporarily at a different URL. The client should continue to use the original URL for future requests.
The response to the request can be found at another URL using a GET method. Often used after POST to redirect to a result page.
The resource has not been modified since the last request. The client can use its cached version.
The requested resource must be accessed through the proxy given by the Location header. Deprecated due to security concerns.
The resource resides temporarily at a different URL. Unlike 302, the request method must not change when reissuing the request.
The resource has been permanently moved. Unlike 301, the request method must not change when reissuing the request.
The server cannot process the request due to malformed syntax, invalid framing, or deceptive routing.
The request requires authentication. The client must provide valid credentials to access the resource.
Reserved for future use. Originally intended for digital payment systems, sometimes used for paywalled content.
The server understood the request but refuses to authorise it. Authentication will not help; the client lacks permission.
The server cannot find the requested resource. The URL may be wrong or the resource may have been removed.
The HTTP method used is not supported for the requested resource. The response must include an Allow header listing valid methods.
The server cannot produce a response matching the Accept headers sent by the client.
The client must first authenticate itself with the proxy before the request can be fulfilled.
The server timed out waiting for the request. The client may repeat the request without modifications.
The request conflicts with the current state of the target resource. Often used for concurrent edit conflicts.
The resource is no longer available and will not be available again. Unlike 404, this is a permanent condition.
The server requires a Content-Length header in the request, which was not provided.
One or more conditions in the request headers (e.g. If-Match, If-Unmodified-Since) evaluated to false.
The request body is larger than the server is willing or able to process.
The URI provided was too long for the server to process. Often caused by excessive query string data.
The server does not support the media type of the request body (e.g. sending XML when only JSON is accepted).
The range specified in the Range header cannot be fulfilled. The range may be outside the size of the resource.
The server cannot meet the requirements of the Expect request header.
Defined in RFC 2324 as an April Fools' joke. The server refuses to brew coffee because it is, permanently, a teapot.
The request was directed at a server that is not able to produce a response. Sent by servers that are not configured for the requested URI scheme and authority.
The server understands the content type and syntax of the request, but the contained instructions are semantically invalid.
The resource that is being accessed is locked. Used in WebDAV.
The request failed because it depended on another request that also failed. Used in WebDAV.
The server is unwilling to process a request that might be replayed, to avoid potential replay attacks.
The server refuses to perform the request using the current protocol but may do so after the client upgrades to a different protocol.
The server requires the request to be conditional (e.g. include an If-Match header) to prevent lost-update conflicts.
The client has sent too many requests in a given amount of time. Used for rate limiting.
The server refuses to process the request because one or more header fields are too large.
The resource is unavailable due to legal demands, such as government censorship or court-ordered takedowns.
The server encountered an unexpected condition that prevented it from fulfilling the request.
The server does not support the functionality required to fulfil the request. Typically means the HTTP method is not recognised.
The server, acting as a gateway or proxy, received an invalid response from the upstream server.
The server is currently unable to handle the request due to temporary overloading or scheduled maintenance.
The server, acting as a gateway or proxy, did not receive a timely response from the upstream server.
The server does not support the HTTP protocol version used in the request.
The server has an internal configuration error: transparent content negotiation results in a circular reference.
The server is unable to store the representation needed to complete the request. Used in WebDAV.
The server detected an infinite loop while processing the request. Used in WebDAV.
The server requires further extensions to the request in order to fulfil it.
The client needs to authenticate to gain network access, typically used by captive portals.