HTTP Status Codes — Reference List & Quiz
Look up an HTTP status code
All 62 standard HTTP status codes.
1xx Informational
Interim responses that tell the client the request was received.
- 100ContinueThe request headers are fine so far; the client should continue sending the request body.
- 101Switching ProtocolsThe server is switching to the protocol the client asked for in the Upgrade header, such as WebSocket.
- 102ProcessingA WebDAV interim response telling the client the request was received and is still being processed.
- 103Early HintsSends preliminary headers (often Link preloads) before the final response so the client can start fetching resources.
2xx Success
The request was received, understood, and accepted.
- 200OKThe request succeeded; the meaning of the payload depends on the method used.
- 201CreatedThe request succeeded and one or more new resources were created, usually referenced by the Location header.
- 202AcceptedThe request was accepted for processing, but the work has not yet completed.
- 203Non-Authoritative InformationThe response is a modified version of the origin's, returned by a transforming proxy.
- 204No ContentThe request succeeded but there is no body to send back.
- 205Reset ContentThe request succeeded; the client should reset the document view, such as clearing a form.
- 206Partial ContentThe server is delivering only part of the resource in response to a Range request.
- 207Multi-StatusA WebDAV response carrying multiple independent status codes for different parts of the request.
- 208Already ReportedA WebDAV code used inside a Multi-Status body to avoid repeating members already enumerated.
- 226IM UsedThe server fulfilled a GET request by applying instance manipulations (delta encoding) to the resource.
3xx Redirection
Further action is needed to complete the request.
- 300Multiple ChoicesThe request has more than one possible response; the client or user can pick among them.
- 301Moved PermanentlyThe resource has a new permanent URL given in the Location header; update your links.
- 302FoundThe resource is temporarily at a different URL; keep using the original URL for future requests.
- 303See OtherThe response can be found at another URL that should be retrieved with a GET request.
- 304Not ModifiedThe cached copy is still valid, so no body is sent in reply to a conditional request.
- 305Use ProxyDeprecated: the resource must be accessed through the proxy named in the response.
- 307Temporary RedirectThe resource is temporarily at another URL and the client must reuse the original method.
- 308Permanent RedirectThe resource is permanently at another URL and the client must reuse the original method.
4xx Client Error
The request has bad syntax or cannot be fulfilled as sent.
- 400Bad RequestThe server cannot process the request because of malformed syntax or an invalid message.
- 401UnauthorizedAuthentication is required or has failed; provide valid credentials to proceed.
- 402Payment RequiredReserved for future use; sometimes used by APIs to signal a payment or quota is needed.
- 403ForbiddenThe server understood the request but refuses to authorize it, even with valid credentials.
- 404Not FoundThe server cannot find the requested resource, and it may or may not exist in the future.
- 405Method Not AllowedThe HTTP method is not supported for this resource; the Allow header lists the valid ones.
- 406Not AcceptableNo representation matches the criteria in the request's Accept headers.
- 407Proxy Authentication RequiredThe client must first authenticate with the proxy before the request can continue.
- 408Request TimeoutThe server timed out waiting for the client to finish sending the request.
- 409ConflictThe request conflicts with the current state of the resource, such as an edit collision.
- 410GoneThe resource is permanently gone and no forwarding address is known.
- 411Length RequiredThe server refuses the request because it lacks a required Content-Length header.
- 412Precondition FailedOne of the conditional headers (such as If-Match) evaluated to false on the server.
- 413Content Too LargeThe request body is larger than the server is willing or able to process.
- 414URI Too LongThe request URI is longer than the server is willing to interpret.
- 415Unsupported Media TypeThe payload's media type is not supported by the target resource.
- 416Range Not SatisfiableThe Range requested cannot be served because it lies outside the resource's size.
- 417Expectation FailedThe expectation in the request's Expect header could not be met by the server.
- 418I'm a teapotAn April Fools' joke code: the server is a teapot and refuses to brew coffee.
- 421Misdirected RequestThe request was routed to a server that cannot produce a response for the target authority.
- 422Unprocessable ContentThe request is well-formed but has semantic errors, such as failing validation.
- 423LockedA WebDAV code indicating the target resource is locked.
- 424Failed DependencyA WebDAV code: the request failed because a request it depended on failed.
- 425Too EarlyThe server is unwilling to risk processing a request that might be replayed.
- 426Upgrade RequiredThe client must switch to a different protocol, listed in the Upgrade header, to continue.
- 428Precondition RequiredThe server requires the request to be conditional to prevent lost-update conflicts.
- 429Too Many RequestsThe client has sent too many requests in a given time and is being rate limited.
- 431Request Header Fields Too LargeThe server refuses the request because its header fields are too large.
- 451Unavailable For Legal ReasonsThe resource is unavailable because of a legal demand, such as government censorship.
5xx Server Error
The server failed to fulfill an apparently valid request.
- 500Internal Server ErrorThe server hit an unexpected condition that stopped it from fulfilling the request.
- 501Not ImplementedThe server does not support the functionality required to fulfill the request.
- 502Bad GatewayA gateway or proxy received an invalid response from an upstream server.
- 503Service UnavailableThe server is temporarily unable to handle the request, often due to overload or maintenance.
- 504Gateway TimeoutA gateway or proxy did not get a timely response from an upstream server.
- 505HTTP Version Not SupportedThe server does not support the HTTP protocol version used in the request.
- 506Variant Also NegotiatesA configuration error: content negotiation for the resource points back to itself.
- 507Insufficient StorageA WebDAV code: the server cannot store the representation needed to complete the request.
- 508Loop DetectedA WebDAV code: the server detected an infinite loop while processing the request.
- 510Not ExtendedFurther extensions to the request are required for the server to fulfill it.
- 511Network Authentication RequiredThe client must authenticate to gain network access, as used by captive portals.
Flashcard quiz
Score 0/0 · Streak 0 · Best 0
Which reason phrase matches this status code?
What are HTTP status codes?
HTTP status codes are three-digit numbers a server returns to describe the outcome of a request. They fall into five classes by their first digit: 1xx informational, 2xx success, 3xx redirection, 4xx client error, and 5xx server error. So a 200 means OK, a 301 is a permanent redirect, a 404 means the resource was not found, and a 500 is an internal server error. The reference above lists every standard code with its reason phrase and a plain-English note on when it applies.
401 vs 403, and other easy mix-ups
A few codes are commonly confused. 401 Unauthorized means you are not authenticated — log in and try again — while 403 Forbidden means you are authenticated but not allowed. 404 Not Found says the resource is missing; 410 Gone says it was removed on purpose and will not return. 301 is a permanent redirect and 302/307 are temporary. Use the filter box to jump straight to a code like 422 or a keyword like "redirect" or "forbidden" and compare neighbouring codes side by side.
How the quiz works
Each round shows one status code and four reason-phrase choices. Pick the phrase you think matches; the quiz marks it right or wrong, reveals the correct answer, and keeps a running score, current streak, and best streak for the session. Press Next code for a new card or Reset score to start over. Every code and answer choice is selected with the Web Crypto API, entirely in your browser. For a single random status code instead of a quiz, try the Random HTTP Status Code generator.