Utility Empire

HTTP Status Codes - Quick Reference

Every HTTP status code from 100 to 511, what it means, and what the client or server should do about it. All rows are plain text - search to filter, click Copy to grab the pattern.

Reference rack
STATUSREADY
ROWS61
NETWORKLOCAL
MODEREFERENCE
Item / patternWhat it means / how to use it
100Continue - server received request headers; the client should send the body.
101Switching Protocols - server is upgrading to the protocol named in the Upgrade request header.
102Processing (WebDAV) - request received; a final response is coming later.
103Early Hints - server sends preliminary headers (often preload hints) before the real response.
200OK - the standard success; body contains the result.
201Created - a new resource was created; responses should carry a Location header.
202Accepted - request accepted for processing, but the work is not finished yet.
203Non-Authoritative Information - a proxy transformed the response; body may differ from the origin server.
204No Content - success with an empty body; typical for DELETE and silent updates.
205Reset Content - tells the client to reset the document that sent the request.
206Partial Content - delivering a partial body (byte ranges); used by resume and streamed downloads.
207Multi-Status (WebDAV) - multiple independent operation statuses in one body.
226IM Used - instance manipulations applied (RFC 3229 delta encoding).
300Multiple Choices - several possible responses; the client should pick one.
301Moved Permanently - resource relocated; future requests should use the Location URL.
302Found - legacy temporary redirect; newer code prefers 303 or 307 semantics.
303See Other - after a POST, the client should GET the URL in Location.
304Not Modified - conditional request (If-None-Match / If-Modified-Since); cached copy is still valid.
305Use Proxy - must go through the proxy named in Location; deprecated and widely ignored.
307Temporary Redirect - redirect with method and body repeated unchanged.
308Permanent Redirect - permanent redirect with method and body repeated unchanged.
400Bad Request - malformed or invalid request that the server will not process.
401Unauthorized - authentication failed or is missing; include a WWW-Authenticate header.
402Payment Required - reserved; historically tied to digital payment flows.
403Forbidden - server refuses to authorize even a valid request; auth will not help.
404Not Found - no resource at this URL; do not reveal whether a resource used to exist.
405Method Not Allowed - method is known but not allowed here; include an Allow header.
406Not Acceptable - cannot represent the response in a format the Accept headers permit.
407Proxy Authentication Required - authenticate first with the proxy (Proxy-Authenticate).
408Request Timeout - server gave up waiting for the request; a retry is legal.
409Conflict - request clashes with current resource state (for example duplicate creates).
410Gone - the resource existed but was intentionally removed forever.
411Length Required - the Content-Length header is missing or invalid and is required.
412Precondition Failed - a precondition (If-Match / If-Unmodified-Since) evaluated to false.
413Payload Too Large - request body exceeds the server limit; retry smaller.
414URI Too Long - the request URI is longer than the server will parse.
415Unsupported Media Type - the Content-Encoding or Content-Type is not supported.
416Range Not Satisfiable - requested byte range cannot be fulfilled; return Content-Range: bytes */LEN.
417Expectation Failed - an Expect header expectation could not be met.
418I Am a Teapot - RFC 2324 easter egg; some services serve it for humor.
421Misdirected Request - request was routed to a server that cannot answer for the authority.
422Unprocessable Entity - well-formed request but the business/validation rules failed.
423Locked - the resource is locked (WebDAV) and cannot accept the operation.
424Failed Dependency - the action depends on an earlier action that failed (WebDAV).
425Too Early - server will not risk replaying the request (TLS 1.3 0-RTT).
426Upgrade Required - client should switch to the protocol named in the Upgrade header.
428Precondition Required - the server requires the request to be conditional (RFC 6585).
429Too Many Requests - rate limited; honor Retry-After and back off.
431Request Header Fields Too Large - request headers exceed the server size limit.
451Unavailable For Legal Reasons - the resource is blocked for legal reasons (RFC 7725).
500Internal Server Error - generic server failure; log it and return a generic message.
501Not Implemented - the functionality needed is not supported by this server.
502Bad Gateway - a gateway or proxy got an invalid response from upstream.
503Service Unavailable - server down, overloaded, or in maintenance; add Retry-After when known.
504Gateway Timeout - the upstream server did not answer in time.
505HTTP Version Not Supported - the server refuses the HTTP protocol version used.
506Variant Also Negotiates - transparent content negotiation configuration error.
507Insufficient Storage - the server cannot store the needed representation (WebDAV).
508Loop Detected - an infinite loop was detected while processing (WebDAV).
510Not Extended - further extensions to the request are required (RFC 2774).
511Network Authentication Required - the client must authenticate to the network itself (captive portals).