HTTP Status Codes
tst.dev/reference/statusThe full IANA registry of assigned HTTP status codes with a plain-English note on what each means and where it comes from. Filter by code (4, 404) or keyword (redirect, webdav).
1xx · Informational — request received, continuing process
The server has received the request headers; the client may continue sending the body.
The server agrees to switch protocols (e.g. HTTP to WebSocket) as requested.
The server has received and is still processing the request; a final response will follow.
The server sends hint headers (e.g. resources to preload) before the final response.
Temporary registration: the server supports resumable uploads. Expires unless it becomes a standard.
2xx · Success — the action was successfully received, understood, and accepted
The request succeeded; the response body carries the result.
A new resource was created; the Location header gives its URI.
The request was accepted for processing, but the processing has not yet completed.
The returned representation is a transform of the original and may be non-authoritative (e.g. from a proxy cache).
The request succeeded and the server is intentionally not returning a body.
The request succeeded; the client should reset the document view (e.g. clear a form).
The server is returning part of the body, as selected by a Range header.
WebDAV: the response carries status information for multiple operations.
WebDAV: the collection's members were already enumerated in an earlier part of the response.
The server applied one or more instances to the resource's current state (delta encoding).
3xx · Redirection — further action must be taken to complete the request
The resource has multiple representations; the client (or user) may pick one.
The resource now lives at the URI in Location; clients should use it from now on.
The resource is temporarily at a different URI; a subsequent fetch uses GET regardless of the original method.
Fetch the result at the Location URI using GET.
A conditional request matched; the client may keep its cached copy.
Registered but unused: was meant to require accessing the resource through the proxy in Location.
Reserved and must not be assigned; kept to stay compatible with clients that treat 305 as a redirect.
The resource is temporarily at a different URI; retries must preserve the method and body.
The resource has permanently moved; retries must preserve the method and body.
4xx · Client Error — the request contains bad syntax or cannot be fulfilled
The server cannot process the request because of malformed syntax.
Authentication is required, or the supplied credentials were rejected; WWW-Authenticate names the scheme.
Reserved for future use; occasionally returned for paywalled content.
The server understood the request but refuses to fulfill it.
The server has no resource matching the request target.
The method exists but is not allowed for this resource; the Allow header lists what is.
The resource cannot produce a representation matching the Accept headers.
Like 401, but the client must first authenticate with the intervening proxy.
The client did not finish the request within the time the server is willing to wait.
The request conflicts with the current state of the resource (e.g. a version or uniqueness clash).
The resource is no longer available and the absence is intentional and permanent.
The request lacks a Content-Length the server requires to process it.
A conditional header (If-Match, If-Unmodified-Since, …) evaluated to false.
The request entity is larger than the server is willing or able to process. Renamed from “Payload Too Large” in RFC 9110.
The request URI is longer than the server is willing to interpret. Renamed from “Request-URI Too Long” in RFC 9110.
The request entity is in a content type the server does not support.
No Range in the request applies to the current length of the resource.
An expectation in an Expect header (e.g. 100-continue) cannot be met by this server.
Registered but unused: the “I’m a teapot” code of the April Fools' RFC 2324, widely deployed as an easter egg.
The request was sent to a server that cannot produce a response for it (e.g. the wrong origin for the target).
The server understands the content type and syntax, but the contained instructions are semantically invalid. Renamed from “Unprocessable Entity” in RFC 9110.
WebDAV: the resource is locked.
WebDAV: the method failed because a dependent action (e.g. on a parent resource) failed.
The server is unwilling to risk processing a request that might be a replay of an earlier one (anti-replay protection).
The server refuses to fulfill the request unless the client switches to a different protocol (see Upgrade).
The server requires this request to be conditional.
The client has sent too many requests in a given time (rate limiting); Retry-After may say when to try again.
The request headers are larger than the server is willing to read.
The resource is unavailable due to a legal demand.
5xx · Server Error — the server failed to fulfill an apparently valid request
The server encountered an unexpected condition and could not complete 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 unable to handle the request (overloaded or down); Retry-After may be set.
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.
The resource has an intervariant dependency loop during content negotiation.
WebDAV: the server cannot store the representation needed to complete the request.
The server detected an infinite loop while processing the request (often through a proxy).
Historic: further extensions to the request are required. Obsoleted when the HTTP experiments became Historic.
The client needs to authenticate to gain network access (captive portal).