HTTP Status Reference
Complete reference for all HTTP status codes with explanations.
Request received, please continue.
Server has received the request headers and client should proceed to send the body.
Server is switching protocols.
Sent in response to an Upgrade request header; indicates the protocol it is switching to.
Return some response headers before final HTTP message.
Used with the Link header to allow the browser to preload resources while waiting.
Request succeeded.
Standard response for successful HTTP requests. The actual response depends on the request method used.
Request succeeded and a new resource was created.
Typically returned after POST and PUT requests. The Location header may provide the URL to the new resource.
Request accepted, processing not complete.
Response is intentionally non-committal — it doesn't guarantee the request will be acted upon.
Successful with no response body.
Common for DELETE and PUT responses when no body is needed. The browser stays on the current page.
Partial GET fulfilled.
Used in response to a Range request; body contains only the requested range.
Resource has been moved permanently.
Future requests should use the new URL. SEO benefit: link equity passes to the new URL.
Resource temporarily redirected.
Client should continue to use the original URI for future requests. Browsers follow the Location header.
Cached version is still valid.
Used with conditional GET requests (If-Modified-Since, If-None-Match). No body is sent.
Temporary redirect preserving method.
Like 302 but guarantees the client will use the same HTTP method for the redirected request.
Permanent redirect preserving method.
Like 301 but guarantees the client will use the same HTTP method for the redirected request.
Server cannot process the request due to client error.
Malformed syntax, invalid framing, deceptive request routing, or invalid request message syntax.
Authentication is required.
Similar to 403 but specifically for cases where authentication is required but has not been provided or failed.
Server refuses to authorise the request.
Authentication won't help. The server understood the request but refuses to authorize it.
Resource not found.
The server cannot find the requested resource. May also indicate the server wants to hide the existence of a resource.
HTTP method is not supported.
The request method is known by the server but is not supported by the target resource.
Server timed out waiting for the request.
Server did not receive a complete request message within the expected time.
Request conflicts with current state of server.
Common in version control when the client sends a PUT request that conflicts with what is currently on the server.
Resource is permanently gone.
Unlike 404, the client knows this is a permanent deletion. Used to indicate the resource has been intentionally removed.
Request entity too large.
The request body size exceeds the server's limit. Commonly triggered when uploading large files.
Unsupported media format.
The server refuses to accept the request because the payload format is in an unsupported format.
Semantic errors in request.
Common in REST APIs when input validation fails — the syntax is correct but the content is semantically invalid.
Rate limit exceeded.
User has sent too many requests in a given time. Often includes a Retry-After header.
Unexpected server error.
A generic error message when an unexpected condition was encountered and no more specific message is suitable.
Server does not support the function.
Server doesn't support the functionality required to fulfill the request. Often returned for unrecognized HTTP methods.
Invalid response from upstream server.
The server acting as a gateway received an invalid response from the upstream server.
Server temporarily unavailable.
Server is not ready to handle the request. Common during maintenance or when temporarily overloaded.
Upstream server timed out.
The server acting as a gateway did not receive a timely response from the upstream server.
Server storage is full.
WebDAV extension. Server is unable to store the representation needed to complete the request.
Client needs to authenticate to gain network access.
Used by intercepting proxies to control access to the network, e.g. captive portals.