The initial part of the request was received and the client should continue sending the body.
The server agreed to switch protocols (e.g. upgrading HTTP/1.1 to WebSocket).
WebDAV — the request was accepted but is not yet completed.
Used with the Link header to let the client preload resources before the final response.
The request succeeded. The exact meaning depends on the method.
The request succeeded and a new resource was created.
The request was accepted for processing but is not yet complete (async work).
Returned metadata is from a transforming proxy, not the origin server.
The request succeeded but there is no body to return.
Tells the client to reset the document view that sent the request (e.g. clear the form).
Used in response to a Range request — the body contains only the requested byte range.
The resource has multiple representations; the client must pick one.
The resource has a new permanent URL. Search engines update their index.
The resource is temporarily at a different URL. Use 307 if you must keep the method.
After a POST, redirects the client to retrieve the result with GET (Post/Redirect/Get).
The cached copy is still fresh — sent in response to conditional GETs (ETag / If-Modified-Since).
Like 302 but the request method must not be changed when following the redirect.
Like 301 but the request method must not be changed when following the redirect.
The server cannot or will not process the request because of a client error (malformed syntax, invalid framing).
Authentication is required and has failed or has not been provided. (Despite the name, it is about authentication, not authorization.)
Reserved for future use. Sometimes used by APIs to indicate the user has hit a paid quota.
The server understood the request but refuses to authorize it. Re-authenticating will not help.
The server cannot find the requested resource.
The request method is known by the server but is not supported by the target resource.
The server cannot produce a response matching the Accept headers sent by the client.
Like 401 but authentication is needed for a proxy.
The server timed out waiting for the request.
The request conflicts with the current state of the target resource (e.g. version conflict).
The resource has been permanently deleted, with no forwarding address.
The server requires a Content-Length header.
A precondition in the request headers (e.g. If-Match) was not met by the server.
The request body is larger than the server is willing to process.
The URI is longer than the server is willing to interpret.
The request body uses a media type the server or resource does not support.
The Range header asks for a portion of the file outside its bounds.
An April Fools joke from RFC 2324. Returned by servers that refuse to brew coffee.
The request was sent to a server unable to produce a response (e.g. wrong HTTP/2 connection).
The request is well-formed but contains semantic errors (commonly used by APIs for validation failures).
WebDAV — the resource being accessed is locked.
The server is unwilling to process a request that might be replayed.
The client must upgrade to a different protocol (e.g. TLS) to complete the request.
The server requires the request to be conditional (helps avoid the lost-update problem).
The client has sent too many requests in a given time (rate limiting).
The server refuses the request because a header field — or the headers in total — is too large.
The resource is unavailable for legal reasons (named after Fahrenheit 451).
The server hit an unexpected condition. The catch-all 5xx error.
The server does not recognize the request method.
The server, acting as a gateway, received an invalid response from the upstream server.
The server is not ready to handle the request — usually overloaded or down for maintenance.
The server, acting as a gateway, did not get a response in time from the upstream server.
The server does not support the HTTP version used in the request.
WebDAV — the server cannot store the representation needed to complete the request.
WebDAV — the server detected an infinite loop while processing.
The client needs to authenticate to gain network access (captive portals).