HTTP Status Code Reference

Search registered HTTP response codes, understand their meaning, and check practical cache, retry, and implementation guidance.

1xx Informational 2xx Successful 3xx Redirection 4xx Client Error 5xx Server Error
Share this tool

Look Up an HTTP Status Code

Enter a number, official title, or meaning.

Common:

Looking up status code...

Search above or select any code in the full reference below.

Complete HTTP Status Code List

All currently assigned IANA entries, including reserved and temporary registrations.

1xx Informational

The request was received and processing is continuing before a final response.

2xx Successful

The request was successfully received, understood, and accepted.

3xx Redirection

Further action is needed to complete the request, often by using another resource or cached representation.

4xx Client Error

The request cannot be fulfilled because of its syntax, state, credentials, permissions, or target.

5xx Server Error

The server failed to fulfill an apparently valid request.

Common Non-standard Codes

These codes are used by specific servers or platforms and are not part of the IANA HTTP Status Code Registry.

How to Read This HTTP Status Code Reference

An HTTP status code is a three-digit number describing the result of a request. Codes from 100 through 599 are valid HTTP status codes, and the first digit identifies the response class. The reason phrase, such as Not Found, is descriptive and can be changed or omitted without changing the protocol meaning.

A status code is only part of a response. Request method, response fields, cache controls, and a structured error body provide the context a client needs to act correctly. An API should choose the most precise code available without inventing semantics that the standard does not define.

HTTP Status Code Classes

ClassMeaningWhat it tells the client
1xxInformationalProcessing is continuing before a final response.
2xxSuccessfulThe request was received, understood, and accepted.
3xxRedirectionFurther action or a cached representation is needed.
4xxClient ErrorThe request, credentials, permissions, or target prevents fulfillment.
5xxServer ErrorThe server failed to fulfill an apparently valid request.

Common HTTP Response Codes

Common does not mean interchangeable. For example, 201 precisely reports that a resource was created, while 204 reports success without response content. A 404 identifies an unavailable target, while 500 reports an unexpected server-side failure.

CodeMeaningTypical use
200 OKRequest succeededReturn a successful representation.
201 CreatedResource createdConfirm a successful resource-creation request.
204 No ContentSuccess without contentConfirm an action when no response body is needed.
301 / 308Permanent redirectMove a resource permanently; 308 preserves the method.
400 Bad RequestRequest-level client errorReject malformed syntax or framing.
401 / 403Authentication / permissionChallenge credentials or refuse an understood request.
404 Not FoundTarget unavailableReport a missing resource or conceal a forbidden one.
409 / 422State conflict / invalid instructionsDescribe a resolvable conflict or semantic content error.
429 Too Many RequestsRate limit exceededThrottle a client and optionally provide Retry-After.
500 / 502 / 503 / 504Server or upstream failureDescribe unexpected, gateway, availability, or timeout failures.

401 vs 403

401 Unauthorized means valid authentication credentials are missing or failed and normally includes a WWW-Authenticate challenge. 403 Forbidden means the server understood the request but refuses it, including cases where authenticated credentials lack permission.

301 vs 302 vs 307 vs 308

301 and 308 are permanent; 302 and 307 are temporary. The critical difference is method handling: 307 and 308 require the client to preserve the request method and content, while historical handling of 301 and 302 can change POST to GET.

500 vs 502 vs 503 vs 504

500 is an unexpected server failure. 502 means a gateway received an invalid upstream response. 503 means temporary overload or maintenance. 504 means a gateway waited too long for an upstream response. These codes point investigation toward different components.

REST API Status Codes

A REST API should pair a precise status code with a structured error representation. RFC 9457 problem details can provide a stable type, title, status, detail, and instance without forcing clients to parse human-readable messages.

Registered, Unassigned, and Non-standard Status Codes

The IANA HTTP Status Code Registry is the authoritative list of assigned values and their defining specifications. A code can also be reserved, temporarily registered, or marked unused or obsoleted. Those labels matter because seeing a three-digit value in software does not automatically give it standardized HTTP semantics.

Servers and platforms sometimes define operational codes outside the registry. nginx commonly records 499 when a client closes a request, while Cloudflare exposes several provider-specific 52x codes. These values are useful when diagnosing that specific system, but clients cannot assume that another server uses the same number in the same way. An otherwise unrecognized valid code is interpreted according to its class.

Caching and Retrying HTTP Responses

Do not infer cacheability from the response class alone. RFC 9110 identifies several statuses that can be heuristically cacheable, including 200, 301, 308, 404, and 410, but the request method and explicit cache fields remain authoritative. A 304 Not Modified response has a specialized role: it validates or updates an existing cached representation rather than supplying a new response body.

Retries also require context. A client may retry selected transient failures, but only when repeating the operation is safe or known to be idempotent. Honor Retry-After on responses such as 429 and 503, apply bounded backoff, and prevent many clients from retrying simultaneously. Repeating an unchanged 4xx request usually wastes capacity because the client must correct the request first.

HTTP Status Code FAQ

What does HTTP status code 404 mean?

404 Not Found means the origin server did not find a current representation for the target resource, or is unwilling to disclose that one exists. It does not by itself prove that the server is broken.

What is the difference between a 4xx and 5xx error?

A 4xx response indicates that something about the request, credentials, permissions, or target prevents fulfillment. A 5xx response means the server failed to fulfill an apparently valid request.

What does a 500 Internal Server Error mean?

500 reports an unexpected server condition when no more specific 5xx status applies. Servers should log diagnostic detail internally without exposing stack traces or secrets to clients.

Should an API return 200 or 201 after creating a resource?

Use 201 Created when the request creates a resource and identify the primary resource with Location when appropriate. Use 200 when the successful result is better represented as a normal response rather than creation semantics.

Which HTTP status codes should a client retry?

Retry decisions depend on request safety, idempotency, and response guidance. Clients commonly retry selected 408, 429, 500, 502, 503, and 504 responses with bounded backoff, while honoring Retry-After when present.

Is 499 an official HTTP status code?

No. nginx uses 499 in logs to indicate that the client closed the request before nginx completed it, but IANA does not register 499. Treat vendor-specific codes as operational diagnostics, not universal HTTP semantics.

Related Developer Tools