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?

Codes and answer choices are picked locally in your browser with the Web Crypto API.

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.