HTTP Status Explorer
Look up HTTP status codes with explanations and use cases.
1xx · Informational
The server has received the request headers. The client should proceed to send the request body.
The server agrees to switch protocols as requested by the client, e.g., upgrading to WebSocket.
The server has received and is processing the request, but no response is available yet (WebDAV).
Allows the browser to preload resources while the server prepares the final response.
2xx · Success
The request succeeded. The response body contains the requested resource.
The request succeeded and a new resource was created. The Location header typically points to it.
The request was accepted for processing but processing is not complete (async operations).
The returned metadata is from a local or third-party copy, not the origin server.
The request succeeded but there is no content to send. Common for DELETE and PATCH responses.
The request succeeded. The client should reset the document view (e.g., clear a form).
The server is returning only part of the resource in response to a Range request header.
Multiple status codes for multiple independent operations (WebDAV).
Members of a DAV binding have already been enumerated and are not included again.
The server has fulfilled a GET request and the response is a representation of the result of one or more instance-manipulations.
3xx · Redirection
The request has more than one possible response. The user or agent should choose one.
The URL has permanently moved to a new location given in the Location header. Use 308 for non-GET.
The URL has temporarily moved. The client should continue using the original URL in future requests.
Redirect to the resource via GET, typically after a POST to avoid duplicate submissions.
The cached version is still valid. Used with ETag / If-None-Match conditional requests.
Temporary redirect that preserves the HTTP method (POST stays POST, unlike 302).
Permanent redirect that preserves the HTTP method. Use instead of 301 for POST/PUT.
4xx · Client Error
The server cannot process the request due to malformed syntax, invalid parameters, or bad request framing.
Authentication is required. The client must authenticate to get the requested response.
Reserved for future use. Sometimes used to indicate a rate limit or quota exceeded.
The client is authenticated but lacks permission to access the resource. Different from 401.
The server cannot find the requested resource. May also be used to hide resource existence.
The HTTP method is not allowed for this resource. The Allow header lists valid methods.
No content matching the Accept headers exists for this resource.
Similar to 401 but authentication must be done via a proxy.
The server timed out waiting for the request. The client may resend the request.
The request conflicts with the current state of the resource (e.g., duplicate unique field).
The resource has been permanently deleted. Unlike 404, clients should not repeat the request.
The server requires a Content-Length header.
The server does not meet conditions specified in the request headers (e.g., If-Match).
The request body exceeds the server's limits.
The request URI is longer than the server is willing to interpret.
The Content-Type of the request is not supported by the server for this endpoint.
The Range header cannot be satisfied. The actual size is in the Content-Range header.
The server cannot meet the requirements of the Expect request header.
April Fools' joke from RFC 2324. A teapot refuses to brew coffee. Used as an easter egg.
The request was directed at a server that cannot produce a response for this combination of scheme and authority.
The request is well-formed but contains semantic errors, e.g., validation failures.
The resource is locked (WebDAV).
The request failed because it depended on another request that failed (WebDAV).
The server is unwilling to risk processing a request that might be replayed (Early Data).
The client should switch to the protocol given in the Upgrade header.
The server requires conditional requests to prevent lost-update problems.
The client has sent too many requests in a given time (rate limiting). Retry-After may specify wait time.
The server is unwilling to process the request because its header fields are too large.
The server is denying access to the resource as a consequence of a legal demand.
5xx · Server Error
The server encountered an unexpected condition that prevented it from fulfilling the request.
The server does not support the functionality required to fulfill the request.
The server, acting as a gateway, received an invalid response from the upstream server.
The server is temporarily unavailable — overloaded or down for maintenance. Retry-After may be present.
The server, acting as a gateway, did not receive a timely response from the upstream server.
The server does not support the HTTP protocol version used in the request.
Circular reference detected in transparent content negotiation.
The server is unable to store the representation needed to complete the request (WebDAV).
The server detected an infinite loop while processing the request (WebDAV).
Further extensions to the request are required for the server to fulfil it.
The client needs to authenticate to gain network access (captive portals).
FAQ
How many codes are covered?
All IANA-registered HTTP status codes from 1xx to 5xx, including WebDAV extensions and the RFC 9110 updates.