HTTP Status Codes Reference: Quick Lookup Guide
What Are HTTP Status Codes
HTTP status codes are three-digit identifiers in server responses that indicate the result of a client's request. Every HTTP response includes a status code telling the client whether the request succeeded, failed, or requires further action. Bookmark our HTTP Status Codes lookup to check any code's meaning in seconds and copy a ready-made response example.
Status Code Categories
1xx: Informational
Indicates the request has been received and further processing is needed.
| Code | Name | Description |
|---|---|---|
| 100 | Continue | Server received request headers; client should continue sending body |
| 101 | Switching Protocols | Server agrees to switch protocols (e.g., WebSocket upgrade) |
| 102 | Processing | Server is processing the request (WebDAV) |
2xx: Success
Indicates the request was successfully received, understood, and processed.
| Code | Name | Description |
|---|---|---|
| 200 | OK | Request succeeded (most common) |
| 201 | Created | Request succeeded and a new resource was created (POST success) |
| 202 | Accepted | Request accepted but not yet processed (async operations) |
| 204 | No Content | Request succeeded with no response body (DELETE success) |
| 206 | Partial Content | Server returned only part of the resource (range requests) |
3xx: Redirection
Indicates the client needs to take additional action to complete the request.
| Code | Name | Description |
|---|---|---|
| 301 | Moved Permanently | Resource permanently moved to new URL (SEO-friendly) |
| 302 | Found | Resource temporarily moved to new URL |
| 304 | Not Modified | Resource unchanged; use cached version |
| 307 | Temporary Redirect | Temporary redirect, preserves request method |
| 308 | Permanent Redirect | Permanent redirect, preserves request method |
4xx: Client Errors
Indicates the client sent a problematic request.
| Code | Name | Description |
|---|---|---|
| 400 | Bad Request | Malformed request (missing params, JSON parse error) |
| 401 | Unauthorized | Not authenticated (login required) |
| 403 | Forbidden | Authenticated but no permission |
| 404 | Not Found | Resource doesn't exist (the classic error) |
| 405 | Method Not Allowed | HTTP method not permitted for this resource |
| 409 | Conflict | Resource conflict (e.g., creating a duplicate) |
| 413 | Payload Too Large | Request body too big |
| 422 | Unprocessable Entity | Syntactically correct but semantically invalid (validation failure) |
| 429 | Too Many Requests | Rate limit exceeded |
5xx: Server Errors
Indicates the server failed to fulfill a valid request.
| Code | Name | Description |
|---|---|---|
| 500 | Internal Server Error | Generic server error (code bug, uncaught exception) |
| 502 | Bad Gateway | Gateway/proxy received an invalid response |
| 503 | Service Unavailable | Server temporarily unavailable (overloaded or maintenance) |
| 504 | Gateway Timeout | Gateway/proxy timed out |
How to Use the HTTP Status Code Tool
Using ToolVault's HTTP Status Codes:
- Tap a chip in Common status codes (200 / 401 / 404 / 429 / 502, and more) for one-click focus
- Or search by number, name, or description keyword (e.g.
404,teapot,rate limiting) - Filter by 1xx–5xx category to narrow the table
- Click the copy icon to grab a status line + key headers + sample body for mocks or docs
API Status Code Conventions
RESTful API Convention
// GET /users/123
// Success
200 OK → { "id": 123, "name": "Alice" }
// Not found
404 Not Found → { "error": "User not found" }
// POST /users
// Created
201 Created → { "id": 124, "name": "Bob" }
// Validation failed
422 Unprocessable Entity → { "errors": ["Email is required"] }
// DELETE /users/123
// Deleted
204 No Content → (empty body)
// PUT /users/123
// Not authenticated
401 Unauthorized → { "error": "Token expired" }
// No permission
403 Forbidden → { "error": "Insufficient permissions" }
Don't Abuse 200
Returning 200 OK for all responses is a common anti-pattern:
// ❌ Wrong
res.status(200).json({ success: false, error: "User not found" });
// ✅ Correct
res.status(404).json({ error: "User not found" });
Stuffing business failures into a 200 body breaks monitoring, gateway retries, and shared client error handlers — the status code is the first machine-readable signal.
Debugging by status code: a triage order
When a request fails, the status code tells you where to look before you open a single log file. A practical triage order:
- 401 → credentials. The token is missing, malformed, or expired. Check the
Authorizationheader first; do not touch server code. - 403 → authorization. Credentials are valid but the account lacks permission. This is a policy question, not an auth question — re-issuing tokens will not fix it.
- 404 → routing. Confirm the path, then confirm the route registration. A trailing slash mismatch and an unregistered route both look like 404.
- 400 / 422 → payload. Use 400 for malformed syntax; 422 when the body is well-formed but fails validation.
- 5xx → server side. Only now do you open server logs. 502/504 from a gateway usually mean the upstream process crashed or timed out — check the app before the gateway.
Two confusions account for a surprising share of wasted debugging time: 401 vs 403 (authentication vs authorization) and 404 vs 410 (410 means the resource existed and was deliberately removed — crawlers treat them differently: 404 gets retried, 410 gets de-indexed).
One real-world caveat: status codes you see may be rewritten by intermediaries. CDNs and reverse proxies sometimes convert an upstream timeout into a 502, and some corporate proxies replace 4xx bodies entirely. When the status code and the response body disagree, reproduce with curl -v against the origin to see the raw exchange.
Headers that belong with the status
| Code | Useful headers | Why |
|---|---|---|
| 201 | Location | URL of the new resource |
| 301/302/307/308 | Location | Redirect target |
| 304 | ETag / Last-Modified | Conditional cache |
| 401 | WWW-Authenticate | Auth scheme challenge |
| 405 | Allow | Permitted methods |
| 429 / 503 | Retry-After | When to retry |
The tool's Copy response example action follows these conventions so you can paste into OpenAPI samples or local mocks.
FAQ
What's the Difference Between 404 and 410?
404 means the resource might exist but wasn't found (could be temporary). 410 means the resource existed but has been permanently deleted — clients should stop requesting it.
When Should I Use 500 vs 503?
500 is an internal server error (code bug, uncaught exception). 503 means the service is temporarily unavailable (overload, maintenance, dependency failure).
What Should a 429 Response Include?
Include a Retry-After header telling the client when to retry. You can also use X-RateLimit-Reset to return the reset timestamp.
301 vs 308, 302 vs 307?
Permanent redirects: 301 may rewrite POST to GET on older clients; 308 keeps the method. Temporary redirects: 302 may rewrite the method; 307 keeps it. Prefer 307/308 for APIs and form posts so the body is not silently dropped.
Implementation notes
Behind the cheat sheet sits a per-code data table: every status code carries a name, a one-line description, its 4xx/5xx class, and a link to the MDN source — even obscure codes like 407 Proxy Authentication Required that most cheat sheets can't be bothered to include. Descriptions keep exactly one action-guiding sentence; finer semantics are left to the MDN link rather than re-paraphrased.
From the ToolVault developer notebook. The homepage collects more browser-local tools.
Related Tools
Related Articles
Markdown to Word: Native Style Mapping and the Inline-Format Downgrade List
Turning a Markdown draft into a deliverable .docx: pandoc CLI vs in-browser local conversion, how headings/tables/code blocks map to native Word styles, which inline formats degrade to plain text, and why 'editable' beats 'looks right'.
Word to Markdown: Two Clean Paths and What Survives the Conversion
How to convert .docx to Markdown cleanly: pandoc CLI vs in-browser local conversion, a format fidelity table for headings/tables/images/auto-numbering, and fixes for the .doc legacy format, image bloat, and merged-cell tables.
China License Plate Rules and Validation: Standard, New Energy, and Special Formats Explained
Mainland China plate encoding rules in full: the standard blue plate, the GA36D-2018 new-energy format, armed police and embassy plates, province abbreviations and issuing-authority letters — with an online validator.