Codalata

Codalata

Tools HTTP Status Codes

HTTP Status Codes

Static reference — filtering happens in your browser.

77 codes

1xx — Informational

Code Name Meaning Source
100 Continue Server got the request headers and the client should send the body. Rare to see directly — used in large upload negotiation. RFC 9110
101 Switching Protocols Server agrees to switch protocols per the client's Upgrade header, most often into a WebSocket connection. RFC 9110
102 Processing WebDAV interim response telling the client the server is still working on a long-running request. RFC 2518
103 Early Hints Server sends preload/preconnect hints before the final response so the browser can start fetching assets early. RFC 8297

2xx — Success

Code Name Meaning Source
200 OK The request succeeded. The default success code for GET, and common for successful POST/PUT too. RFC 9110
201 Created The request succeeded and a new resource was created, typically returned from a POST with a Location header. RFC 9110
202 Accepted The request was accepted for processing but hasn't finished — common for async or queued jobs. RFC 9110
203 Non-Authoritative Information Success, but the returned metadata came from a proxy or cache rather than the origin server. RFC 9110
204 No Content The request succeeded and there's nothing to return in the body — common after a DELETE or a save-only POST. RFC 9110
205 Reset Content Success — the client should reset the form or view that submitted the request. RFC 9110
206 Partial Content Returns only the byte range the client asked for via a Range header, used for resumable downloads and video seeking. RFC 9110
207 Multi-Status WebDAV response bundling multiple independent status codes for sub-requests into one XML body. RFC 4918
208 Already Reported WebDAV optimization that avoids repeating members already listed earlier in the same multi-status response. RFC 5842
226 IM Used The response is the result of applying one or more instance manipulations (deltas) to the current resource. RFC 3229

3xx — Redirection

Code Name Meaning Source
300 Multiple Choices The requested resource has several representations and there's no way to pick one automatically. RFC 9110
301 Moved Permanently The resource has a new permanent URL. Browsers and crawlers should update their stored or indexed link. RFC 9110
302 Found A temporary redirect. Historically implemented inconsistently around method preservation — prefer 303/307 today. RFC 9110
303 See Other Redirects to a different resource with GET, typically used after a POST to avoid a resubmit-on-refresh prompt. RFC 9110
304 Not Modified Tells a client its cached copy is still valid, saving a full response body via a conditional GET (ETag/If-Modified-Since). RFC 9110
305 Use Proxy Deprecated — told the client to access the resource via a specified proxy. Dropped due to security concerns. RFC 9110
306 (Unused) Reserved but no longer used; defined in an earlier HTTP spec and never assigned a meaning. RFC 9110
307 Temporary Redirect Like a 302, but explicitly preserves the original HTTP method and body on the redirected request. RFC 9110
308 Permanent Redirect Like a 301, but explicitly preserves the original HTTP method and body on the redirected request. RFC 9110

4xx — Client Error

Code Name Meaning Source
400 Bad Request The request is malformed — bad syntax, invalid framing, or something the server simply can't parse. RFC 9110
401 Unauthorized Authentication is required or has failed. Despite the name, it's really about missing or bad credentials. RFC 9110
402 Payment Required Reserved for future use; occasionally repurposed by APIs today to signal a billing or quota problem. RFC 9110
403 Forbidden The server understood the request but refuses to authorize it — the client's identity won't help, unlike 401. RFC 9110
404 Not Found No resource exists at this URL. The most recognizable status code on the web. RFC 9110
405 Method Not Allowed The URL exists but doesn't support the HTTP method used, e.g. a POST to a read-only endpoint. RFC 9110
406 Not Acceptable The server can't produce a response matching the client's Accept headers (content type, language, or encoding). RFC 9110
407 Proxy Authentication Required Like a 401, but authentication is needed with a proxy sitting in front of the origin server. RFC 9110
408 Request Timeout The server gave up waiting for the client to finish sending the request. RFC 9110
409 Conflict The request conflicts with the current state of the resource, e.g. an edit based on stale data. RFC 9110
410 Gone The resource used to exist but was intentionally removed and won't return — a stronger signal than a plain not-found. RFC 9110
411 Length Required The server requires a Content-Length header that the request didn't include. RFC 9110
412 Precondition Failed A conditional request (If-Match/If-Unmodified-Since) failed, usually to prevent overwriting newer data. RFC 9110
413 Content Too Large The request body is larger than the server is willing or able to process. RFC 9110
414 URI Too Long The request URL exceeds what the server is willing to interpret — often from data stuffed into query strings. RFC 9110
415 Unsupported Media Type The request body's Content-Type isn't one the server knows how to handle. RFC 9110
416 Range Not Satisfiable The Range header requested bytes outside what the resource actually contains. RFC 9110
417 Expectation Failed The server can't meet the requirement given in the request's Expect header. RFC 9110
418 I'm a teapot An April Fools' joke from the Hyper Text Coffee Pot Control Protocol, kept alive as a running teapot Easter egg. RFC 2324
421 Misdirected Request The request was routed to a server that can't produce a response for this scheme-and-host combination. RFC 9110
422 Unprocessable Content The request is syntactically fine but semantically wrong — the classic REST API validation-error code. RFC 4918
423 Locked WebDAV — the target resource is locked, usually by another client's in-progress edit. RFC 4918
424 Failed Dependency WebDAV — the request failed because a prior dependent request in the same batch had already failed. RFC 4918
425 Too Early The server won't risk processing a request that might be replayed, sent over early TLS 1.3 0-RTT data. RFC 8470
426 Upgrade Required The server refuses to continue on the current protocol and wants the client to upgrade, per the Upgrade header. RFC 9110
428 Precondition Required The server wants a conditional request (If-Match, etc.) to avoid the classic lost-update problem. RFC 6585
429 Too Many Requests Rate limiting — the client has sent too many requests in a given window; check the Retry-After header. RFC 6585
431 Request Header Fields Too Large The request's headers, individually or combined, are too large for the server to process. RFC 6585
444 No Response Nginx closed the connection without sending any response, often to malformed or malicious-looking requests. nginx Unofficial
449 Retry With IIS/Microsoft extension telling the client to resubmit the request after performing an indicated action. Microsoft Unofficial
451 Unavailable For Legal Reasons The resource is withheld due to a legal demand, such as a censorship order or takedown notice. RFC 7725
499 Client Closed Request Nginx-specific — the client closed the connection before the server could finish sending a response. nginx Unofficial

5xx — Server Error

Code Name Meaning Source
500 Internal Server Error A generic catch-all for unexpected server-side failures with no more specific code available. RFC 9110
501 Not Implemented The server doesn't support the functionality needed to fulfill the request, such as an unrecognized method. RFC 9110
502 Bad Gateway A server acting as a gateway or proxy got an invalid response from the upstream server it was talking to. RFC 9110
503 Service Unavailable The server is temporarily unable to handle the request — overloaded, or down for maintenance. RFC 9110
504 Gateway Timeout A gateway or proxy didn't get a timely response from the upstream server it depends on. RFC 9110
505 HTTP Version Not Supported The server doesn't support the HTTP protocol version used in the request line. RFC 9110
506 Variant Also Negotiates Server misconfiguration — the chosen variant resource is itself set up for content negotiation, creating a loop. RFC 2295
507 Insufficient Storage WebDAV — the server can't store the representation needed to complete the request. RFC 4918
508 Loop Detected WebDAV — the server detected an infinite loop while processing a request with header Depth: infinity. RFC 5842
509 Bandwidth Limit Exceeded Common on cPanel-hosted sites when a site's bandwidth allocation for the billing period is exhausted. cPanel Unofficial
510 Not Extended The server requires further extensions to the request before it can be fulfilled. RFC 2774
511 Network Authentication Required The client needs to authenticate to gain network access, e.g. a captive portal on public Wi-Fi. RFC 6585
520 Web Server Returned an Unknown Error Cloudflare got an unexpected or empty response from the origin server and doesn't know why. Cloudflare Unofficial
521 Web Server Is Down Cloudflare couldn't reach the origin server because it refused the connection outright. Cloudflare Unofficial
522 Connection Timed Out Cloudflare's connection attempt to the origin server timed out during the TCP handshake. Cloudflare Unofficial
523 Origin Is Unreachable Cloudflare couldn't route to the origin server at all — usually a DNS or network reachability issue. Cloudflare Unofficial
524 A Timeout Occurred Cloudflare connected to the origin server but it took too long to send a complete response. Cloudflare Unofficial
525 SSL Handshake Failed The SSL handshake between Cloudflare and the origin server failed. Cloudflare Unofficial
526 Invalid SSL Certificate Cloudflare couldn't validate the origin server's SSL certificate. Cloudflare Unofficial
527 Railgun Error Cloudflare's Railgun feature failed to establish a connection to its origin-side listener. Cloudflare Unofficial
598 Network Read Timeout Error Unofficial — a proxy's read from the upstream server timed out before it finished responding. Unofficial Unofficial
599 Network Connect Timeout Error Unofficial — a proxy's attempt to connect to the upstream server timed out. Unofficial Unofficial