Continue
The server got the request headers and the client may send the body. Used with "Expect: 100-continue" before large uploads.
RFC 9110Search by number or name, or filter by class. Each code links to its specification.
The request was received and the process continues. Rarely seen in application code.
The server got the request headers and the client may send the body. Used with "Expect: 100-continue" before large uploads.
RFC 9110The server agrees to switch protocols as the client asked, for example from HTTP/1.1 to WebSocket.
RFC 9110WebDAV: the server accepted the request and is still working on it, so the client should not time out.
RFC 2518Sends Link headers early so the browser can preload CSS or fonts while the server prepares the final response.
RFC 8297The request was received, understood and accepted.
The request succeeded. The body contains the requested resource or the result of the action.
RFC 9110A new resource was created, typically after a POST. The Location header should point to it.
RFC 9110The request was accepted for processing but is not finished yet, for example a queued background job.
RFC 9110The response is OK but was modified by a transforming proxy, so it is not exactly what the origin sent.
RFC 9110Success with no body to return. Common for DELETE or for saving a form without reloading the page.
RFC 9110Only part of the resource is returned, as asked by a Range header. Used for resumable downloads and video seeking.
RFC 9110The server applied delta encoding (instance manipulations) to the response. Very rarely used.
RFC 3229Further action, usually following another URL, is needed to complete the request.
Several representations exist (for example languages or formats) and the client should choose one.
RFC 9110The resource has a new permanent URL, given in Location. Search engines transfer ranking to the new URL.
RFC 9110The resource is temporarily at another URL. Clients keep using the original URL; browsers may turn a POST into a GET.
RFC 9110The result can be found at another URL with GET. Used after a form POST to avoid resubmission (Post/Redirect/Get).
RFC 9110The cached copy is still valid (If-None-Match or If-Modified-Since matched), so no body is sent.
RFC 9110Temporary redirect that keeps the method and body, so a POST stays a POST.
RFC 9110Permanent redirect that keeps the method and body. The strict version of 301.
RFC 9110The request is wrong: bad syntax, missing authentication, no permission or a resource that does not exist.
The server cannot process the request because it is malformed: invalid syntax, bad JSON or wrong parameters.
RFC 9110Authentication is missing or invalid. The response includes WWW-Authenticate to say how to log in.
RFC 9110Reserved for future digital payment systems; some APIs use it when a subscription or quota must be paid.
RFC 9110The server knows who you are but refuses the action: you lack permission. Logging in again will not help.
RFC 9110The HTTP method is not supported for this URL, for example POST on a read-only resource. Allow lists valid methods.
RFC 9110The server cannot produce a response matching the Accept headers (type, language or encoding).
RFC 9110Like 401, but the client must authenticate with the proxy first.
RFC 9110The server waited too long for the client to finish sending the request and closed the connection.
RFC 9110The request conflicts with the current state, such as an edit conflict or a duplicate unique key.
RFC 9110The resource was deleted on purpose and will not come back. Search engines drop it faster than a 404.
RFC 9110A conditional header such as If-Match did not match, often used to prevent overwriting someone else's changes.
RFC 9110The request body is larger than the server allows (formerly "Payload Too Large").
RFC 9110The URL is longer than the server will accept, often because too much data was put in a GET query string.
RFC 9110The body format (Content-Type) is not supported, for example XML sent to a JSON-only API.
RFC 9110An April Fools' joke from the Hyper Text Coffee Pot Control Protocol: a teapot cannot brew coffee. Some sites use it as an easter egg.
RFC 2324The request reached a server that cannot answer for this host, for example when a reused HTTP/2 connection targets the wrong origin.
RFC 9110The syntax is correct but the content is invalid, for example failed validation rules (formerly "Unprocessable Entity").
RFC 9110WebDAV: the request failed because it depended on another request that failed.
RFC 4918The server will not process a request that might be replayed, such as TLS 1.3 early data.
RFC 8470The server requires conditional requests (If-Match) to avoid lost updates.
RFC 6585The client sent too many requests in a given time (rate limiting). Retry-After says when to try again.
RFC 6585The headers are too large in total or one header is too large, often because of oversized cookies.
RFC 6585The resource is blocked for legal reasons, such as censorship or a court order. The number refers to "Fahrenheit 451".
RFC 7725The request looked valid but the server failed to handle it.
A generic error: something unexpected went wrong on the server. Check the server logs.
RFC 9110The server does not support the feature or method needed to fulfil the request.
RFC 9110A gateway or proxy got an invalid response from the upstream server, for example when the app behind Nginx crashed.
RFC 9110The server is temporarily unable to handle requests because of overload or maintenance. Retry-After may say when to come back.
RFC 9110Content negotiation is misconfigured: the chosen variant itself tries to negotiate.
RFC 2295WebDAV: the server cannot store the data needed to complete the request.
RFC 4918Further extensions to the request are required. Obsolete and practically unused.
RFC 2774The client must log in to the network first, typically a hotel or airport Wi-Fi captive portal.
RFC 6585Every HTTP response starts with a three-digit status code that tells the client how the request went. The first digit sets the class: 1xx informational, 2xx success, 3xx redirection, 4xx client errors and 5xx server errors. Browsers, search engines, caches, API clients and monitoring tools all act on these codes, so choosing the right one matters: a 301 passes SEO value to a new URL while a 302 does not, a 503 tells crawlers to come back later, and a 429 tells API clients to slow down. The codes are defined mainly in RFC 9110 (HTTP Semantics), with a few in separate RFCs.
The whole reference is rendered into the page, so search runs instantly in your browser with no requests to a server.
Type a number such as 404, a name such as "gateway", or a word such as "redirect" in the search box. Results update as you type.
Use the class chips (1xx to 5xx) to narrow the list, for example to review all client errors at once.
Read the explanation under each code to see what it means, when a server should send it and how clients react.
Follow the RFC link for the exact specification, or share a direct link to a code with an anchor such as #429.
Return 201 Created with a Location header after a POST, 204 No Content after a DELETE, 400 for malformed JSON, 422 for validation errors and 409 when the request conflicts with the current state.
Use 301 or 308 for permanent moves so search engines transfer rankings, and 302 or 307 for temporary redirects such as A/B tests. 308 and 307 also keep POST as POST.
Send 401 when the user is not logged in or the token is invalid, and 403 when the user is known but not allowed. Many APIs return 404 instead of 403 to hide that a resource exists.
Return 503 with a Retry-After header during maintenance so crawlers keep your rankings, and 429 with Retry-After when a client exceeds its rate limit.
401 Unauthorized means "who are you?": authentication is missing or failed. 403 Forbidden means "I know who you are, but you may not do this". Logging in again fixes a 401, not a 403.
Use 301 (or 308) when the old URL is gone for good, and 302 (or 307) when it will come back. Using 302 for a permanent move can delay search engines from indexing the new URL.
502 Bad Gateway: a proxy got an invalid answer from the upstream server. 503 Service Unavailable: the server is overloaded or in maintenance. 504 Gateway Timeout: the upstream did not answer in time.
No. Clients, caches and monitoring rely on the status code. Returning 200 for failures hides errors from tools and can get error pages indexed as "soft 404s".