Server received headers; client can proceed with the request body.
Server agrees to switch protocols as requested.
Server is processing a WebDAV request; no response available yet.
Early Hints (RFC 8297)
Used to return some response headers before the final HTTP message.
Request successful. Response content depends on the request method.
New resource created as a result of the request.
Request accepted for processing, but not completed yet.
Transforming proxy is returning a modified version of the origin’s response.
Request processed successfully; no content to return.
Request processed successfully; requester should reset its document view.
Server delivers only part of the resource due to a range header.
XML message with multiple response codes for WebDAV sub-requests.
Already Reported (WebDAV)
DAV binding members enumerated in a preceding part of the response.
IM Used (RFC 3229)
Server fulfilled a request, and the response is a representation of applied instance-manipulations.
Multiple options available for the resource; client may choose.
All future requests should be directed to the given URI.
Client should look at another URL (historically “Moved Temporarily”).
Response can be found under another URI using the GET method.
Resource not modified since specified by request headers.
Requested resource available only through a proxy. Not widely supported.
Request should be repeated with another URI; method cannot be changed.
All future requests should be directed to the given URI. Method cannot change.
4xx: Client Errors
Server cannot process the request due to a client error.
Authentication required, has failed, or not yet provided.
Reserved for future use or to indicate payment issues. Not widely used.
Server understood the request, but client lacks necessary permissions.
Requested resource could not be found.
Method Not Allowed
Request method is not supported for the requested resource.
Requested resource produces content not acceptable according to headers.
Proxy Authentication Req.
Client must first authenticate with the proxy.
Server timed out waiting for the request.
Request could not be processed due to a conflict in the current resource state.
Resource requested is no longer available and will not be available again.
Request did not specify the length of its content.
Server does not meet one of the preconditions specified in the request header.
Payload Too Large
Request is larger than the server is willing or able to process.
URI Too Long
URI provided was too long for the server to process.
Unsupported Media Type
Request entity has a media type not supported by the server or resource.
Range Not Satisfiable
Client has asked for a portion of the file that the server cannot supply.
Server cannot meet the requirements of the Expect request-header field.
I’m a teapot (RFC 2324)
April Fools’ joke code, not expected to be implemented. Used as an Easter egg.
Additional 4xx codes available for specific scenarios.
5xx: Server Errors
Internal Server Error
Unexpected condition encountered; no more specific message available.
Server does not recognize the request method or lacks the ability to fulfill it.
Server acting as a gateway or proxy received an invalid response from the upstream server.
Server cannot handle the request; usually a temporary state (e.g., overloaded).
Server acting as a gateway or proxy did not receive a timely response from the upstream server.
HTTP Version Not Supported
Server does not support the HTTP version used in the request.
Additional 5xx codes for specific server-related issues.
Apache HTTP Server
218 This is fine: Used by Apache servers. A catch-all error condition allowing message passage through the server when the ProxyErrorOverride setting is enabled.
419 Page Expired: Used by Laravel when a CSRF Token is missing or expired.
420 Method Failure: Deprecated response used by the Spring Framework when a method has failed.
420 Enhance Your Calm: Returned by Twitter API when the client is rate-limited; versions
This cheat sheet serves as a quick reference for developers dealing with HTTP status codes. Understanding these codes and their meanings is crucial for effective troubleshooting and debugging in web development.