HTTP Status Code Reference

Search and filter 46 HTTP status codes with a one-line summary and practical fix notes for each.

This reference is static and fully local. Your searches never leave the page.

—

How It Works

Every HTTP response starts with a three-digit code, and the first digit alone tells you which of the five classes you are dealing with. This reference covers the 46 codes a developer realistically meets, each with a one-line summary and an expanded note covering the common cause and the first action to try — filter by class, search by code or phrase, and click any row to open it.

The five classes
1xx is informational — interim signals that usually complete inside the client's connection handling. 2xx is success, with sub-flavors for created (201), accepted-but-unfinished (202) and deliberately empty (204). 3xx is redirection: go somewhere else, under stated rules. 4xx is a client error — the request as sent was unacceptable. 5xx is a server error — the request was fine, the server could not deliver. The single most useful division when debugging: 4xx means look at what you sent, 5xx means look at what they run.
Idempotency and retries
Safe to retry with backoff: 408, 425, 429 (honor Retry-After), and the 5xx family — 500, 502, 503, 504. Never worth blind retries: 4xx codes about the payload itself (400, 413, 415) and authorization failures (401, 403). Codes like 409 and 412 are retryable only after you fetch fresh state and fix the conflict — replaying the same request just fails again.
Permanent vs temporary redirects
301 and 308 are cached by clients essentially forever: use them only when the old URL will never return, and know a mistake keeps following users after you fix the server. 302, 303 and 307 are not stored — the browser re-asks the original URL next time — and differ in how the method is rewritten: 303 forces GET, 307 preserves the method, 302 keeps the method in practice but not by guarantee.

Frequently Asked Questions

What is the difference between 429 and 503?

Blame and recovery. 429 Too Many Requests means your client exceeded a rate limit — the request was well-formed and the server healthy, but you asked too often, so back off and honor Retry-After. 503 Service Unavailable means the server itself is overloaded or in maintenance: any request would get the same answer, so it is capacity's problem, not your behavior's. Both invite retries with backoff; only 429 gets worse specifically for you.

How does the browser use 304?

Through conditional requests. When a cached copy goes stale, the browser revalidates by sending If-None-Match (with the stored ETag) or If-Modified-Since; if nothing changed the server replies 304 Not Modified with no body, and the browser serves its cached copy. You see it in DevTools as a tiny response, it is not an error, and if it feels like 'my changes are not showing up' the thing to inspect is cache headers — not the 304 itself.

Is 418 I'm a Teapot a real standard?

Yes, in the RFC sense: it comes from RFC 2324, the 1998 April Fools' specification of HTCPCP, the Hyper Text Coffee Pot Control Protocol. Modern HTTP specifications (RFC 9110 and RFC 9562) explicitly reserve the code so that old teapot servers keep working. Real-world 418 responses today are almost always joke implementations or deliberate honeypots used by anti-bot systems.

Why only 46 codes?

Because HTTP defines over sixty codes and most people never meet the rest. This list covers every code from the core HTTP semantics (RFC 9110/9111), the additions in RFC 6585, 4918/5842 (WebDAV), 7725, 8470 and the TLS-related 425 — the codes you can realistically see in a browser console, server log or proxy trace, in one searchable place.

Is anything uploaded to a server?

No. All 46 entries are baked into the page itself; searching and filtering happen in the JavaScript inside your tab. Your queries never leave the device, and the page works with no network access at all once loaded.