HTTP Reference

Every HTTP Status Code, Explained

Search any status code — from 100 to 599 plus the Cloudflare and WebDAV extensions you actually see in production. For each: what it means, when to return it, the common causes when it shows up in your logs, and a real-world example.

✓ Works offline ✓ No signup ✓ Copy-ready ✓ Vanilla JS
🔍

Quick Mental Map: The Five Categories

HTTP status codes are organized into five families by their first digit. If you remember nothing else from this page, remember this:

RangeMeaningMental model
1xxInformational"Got it — standby." Continue processing.
2xxSuccess"Done." The request worked.
3xxRedirection"Look somewhere else." Client needs to take another action.
4xxClient Error"You sent something wrong." Client's fault.
5xxServer Error"I broke." Server's fault.

The 4xx/5xx split is the most common source of debate — when a request hits a downstream service that's broken, is that a 4xx or 5xx for your API? Convention: if the client could have done anything different to avoid the failure, it's a 4xx. If the failure is something only your infrastructure could fix, it's a 5xx.

The Status Code Distinctions That Matter Most in Production

Most engineers learn the high-traffic codes (200, 404, 500) on day one and never go deeper. But a handful of distinctions show up in real bug reports and incident postmortems over and over:

Getting these right matters more for APIs than for human-facing pages, because client libraries (axios, fetch, Stripe SDK, retry middleware) make automatic decisions based on the code you return. A 429 with a Retry-After header gets retried correctly. A 503 returned for rate-limiting often gets retried too aggressively and amplifies your overload.

How REST Frameworks Map Internal Errors to HTTP Codes

If you're building an API, here's how the most-used modern frameworks default:

HTTP Status Codes in Job Postings (And What They Signal)

HTTP status code knowledge shows up in backend, platform, and SRE interview loops constantly — usually disguised as a system-design question. "How would you design rate limiting?" tests 429 and Retry-After. "How would you handle a flaky upstream?" tests 502 vs 504. "How would you build idempotent POSTs?" tests 200/201/409 patterns and the Idempotency-Key header.

If you're hiring or job-searching for these roles, our culture-first backend & platform jobs board is filterable by what the team is actually building. The engineering-driven companies in our directory tend to ask sharper API-design questions on their loops than less-eng-led companies do — a useful signal either way.

Frequently Asked Questions

What is the difference between 401 and 403?+
401 Unauthorized means the request lacks valid authentication credentials — the client hasn't proven who they are. 403 Forbidden means the server understood who the client is, but the authenticated identity doesn't have permission to perform the action. A simple mnemonic: 401 = "you have not logged in," 403 = "you are logged in, but you can't do that."
When should I return 404 vs 410?+
Return 404 Not Found when a resource doesn't exist at the URL (and may or may not have ever existed, and may exist in the future). Return 410 Gone when you deliberately know the resource used to exist but is now intentionally removed and won't come back. 410 is a stronger signal for search engines and CDN caches — they treat it as permanent. Use it for deleted blog posts, expired job postings, or deprecated API endpoints you've removed for good.
Is 422 Unprocessable Entity correct for validation errors?+
Yes — 422 is now the recommended status code for semantic validation errors on a well-formed request. Use 400 Bad Request when the request itself is malformed (broken JSON, missing required fields at the parser level). Use 422 when the request parses fine but fails business validation — like "email must be unique" or "price must be positive." This split is widely adopted across modern frameworks.
What's the difference between 502, 503, and 504?+
502 Bad Gateway: your server got an invalid response from an upstream service. 503 Service Unavailable: your server is intentionally refusing to handle the request right now (overload, maintenance, circuit breaker open). 504 Gateway Timeout: your server tried to reach an upstream service and didn't get a response in time. 502 usually means broken upstream; 503 usually means deliberate throttling; 504 usually means slow upstream.
What HTTP status code should an API return for rate-limiting?+
Return 429 Too Many Requests. Include a Retry-After header indicating how long the client should wait. Many APIs also include X-RateLimit-Remaining and X-RateLimit-Reset headers so clients can adjust without retrying blindly. Avoid using 503 for rate-limiting — 503 implies temporary server overload, not deliberate per-client throttling.
Does this HTTP status code lookup tool work offline?+
Yes. The entire lookup runs in your browser using vanilla JavaScript. Once the page has loaded, you can disconnect from the internet and continue searching. Nothing is sent to any server — search, filtering, and copy-to-clipboard happen locally.

Looking for backend or platform roles?

Browse engineering jobs at companies with strong API and infra culture — filterable by what the team actually ships.

Browse Engineering Jobs → Build Portfolio Projects →