🚦 HTTP Status Code Explainer
HTTP status code lookup for every standard response code — 200, 301, 404, 500, 502, 503 — in plain English, with what to do about each one.
Showing 16 HTTP Status Codes
Standard response for successful HTTP requests.
Request succeeded and a new resource has been created.
Server successfully processed request but returns no content.
Resource has been permanently assigned a new URI.
Resource temporarily resides under a different URI.
Client has cached copy; no need to retransmit resource.
Server cannot process request due to malformed syntax.
Authentication is required and has failed or not been provided.
Server understands request but refuses to authorize it.
Origin server did not find a current representation for target resource.
HTTP method used (e.g. GET vs POST) is not supported for this endpoint.
User has sent too many requests in a given amount of time (Rate Limited).
Generic error message when an unexpected condition occurred on server.
Server received an invalid response from upstream server (e.g. Nginx proxy).
Server currently unable to handle request due to overload or maintenance.
Server acting as gateway did not receive timely response from upstream.
What HTTP Status Code Explainer Does
HTTP status codes are three-digit integers that tell a client what happened to its request. The first digit defines the class — 1xx informational, 2xx success, 3xx redirection, 4xx client error, 5xx server error — and a client that does not recognize a specific code is required to treat it as the generic x00 code of its class.
The core set is defined in RFC 9110, which in 2022 consolidated the older RFC 7231 series. Additional codes come from separate specifications: WebDAV contributes 207 and 422, RFC 6585 adds 428, 429 and 431, and IANA maintains the authoritative registry of every assigned value.
Choosing the right code matters more than it appears. Search engines treat 301, 302, 404 and 410 as materially different instructions about whether and how to keep a URL, and returning 200 for an error page — a soft 404 — is one of the most common ways sites confuse crawlers about which pages are real.
How to Use HTTP Status Code Explainer
- Filter by status category (2xx, 3xx, 4xx, 5xx) or type a code/keyword
- Read the description and developer fix recommendations
Status Code Classes
| Class | Meaning | Client behavior |
|---|---|---|
| 1xx | Informational — request received, continuing | Interim; the client waits for a final response |
| 2xx | Successful — request understood and accepted | Process the payload |
| 3xx | Redirection — further action needed | Usually follow the Location header |
| 4xx | Client error — the request is at fault | Do not retry unmodified |
| 5xx | Server error — the server failed a valid request | Retry may succeed later |
Redirects: Which Code to Use
The distinction between permanent and temporary, and whether the request method is allowed to change, is the part that is most often got wrong.
| Code | Name | Permanent? | Method preserved? | Use when |
|---|---|---|---|---|
| 301 | Moved Permanently | Yes | No — may rewrite POST to GET | A URL has moved for good; passes ranking signals |
| 302 | Found | No | No — may rewrite POST to GET | Temporary move; the original URL stays canonical |
| 303 | See Other | No | No — always becomes GET | Post/Redirect/Get after a form submission |
| 307 | Temporary Redirect | No | Yes — method and body preserved | Temporary move where a POST must stay a POST |
| 308 | Permanent Redirect | Yes | Yes — method and body preserved | Permanent move where the method must not change |
The Client Errors That Matter Most
| Code | Name | What it actually means |
|---|---|---|
| 400 | Bad Request | Malformed syntax — the server could not parse it at all |
| 401 | Unauthorized | Authentication is missing or invalid. Misnamed: it means unauthenticated |
| 403 | Forbidden | Identity is known and still not permitted. Re-authenticating will not help |
| 404 | Not Found | No representation here. The server is silent on whether it ever existed |
| 410 | Gone | Deliberately removed and not coming back. Crawlers drop these faster than 404s |
| 422 | Unprocessable Content | Syntactically valid but semantically wrong — the usual API validation failure |
| 429 | Too Many Requests | Rate limited. Should carry a Retry-After header |
Server Errors
| Code | Name | Typical cause |
|---|---|---|
| 500 | Internal Server Error | An unhandled exception — the catch-all when nothing more specific fits |
| 502 | Bad Gateway | A proxy received an invalid response from upstream |
| 503 | Service Unavailable | Overloaded or in maintenance. Temporary by definition; send Retry-After |
| 504 | Gateway Timeout | A proxy gave up waiting for an upstream response |
How to Read Your Result
401 versus 403
A 401 means the server does not know who you are and an appropriate credential might work; it must include a WWW-Authenticate header. A 403 means the server knows exactly who you are and the answer is still no. Sending 401 for an authorization failure invites clients into a pointless re-authentication loop.
404 versus 410 for deleted pages
Both remove a page from search results eventually, but 410 signals deliberate permanent removal and is acted on more quickly. Use 410 for content you intentionally deleted and will never restore. Use 404 as the default for anything that simply is not there.
Soft 404s
Returning 200 with a "page not found" message is a soft 404. Google detects and reports these, and they waste crawl budget because every non-existent URL looks like a real page. Redirecting a large set of dead URLs to an unrelated hub page produces the same problem: the destination has nothing to do with the request, so it is classified as a soft 404 rather than a useful redirect.
Limitations & Accuracy Notes
- This lookup covers registered status codes and their standard semantics. Individual APIs sometimes overload codes with their own meanings — always check the API documentation before relying on a generic interpretation.
- Codes in the 6xx range and above are not valid HTTP. Some frameworks and CDNs emit non-standard values (Cloudflare's 520–530 series, for example) that clients will treat as generic 5xx.
- Whether a redirect preserves the request method is prescribed by the specification but historically violated by user agents, which is precisely why 307 and 308 were introduced to state it unambiguously.
Frequently Asked Questions
What do HTTP status code ranges mean?
What is the difference between 401 and 403 status codes?
What do the status code classes mean?
What is the difference between 301 and 302?
When should I use 404 versus 410?
What does 401 mean versus 403?
What is a 429?
Why am I getting a 502 or 504?
References & Further Reading
- RFC 9110 — HTTP Semantics — The current normative definition of status code semantics
- IANA — HTTP Status Code Registry — Authoritative list of every assigned code
- MDN — HTTP response status codes — Practical per-code reference with browser behavior notes