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.

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 secure browser randomness, entirely in your browser. For a single random status code instead of a quiz, try the Random HTTP Status Code generator.