HTTP

HTTP Status Codes

Reference for all HTTP status codes

API & HTTP
🔒 100% client-side — your data never leaves this page
Maintained by ToolsKit Editorial TeamUpdated: April 7, 2026Reviewed: April 9, 2026
Page mode

Quick CTA

Search a status code or keyword first to find the right HTTP status and copy the status line immediately; scenario guidance stays in Deep.

100
ContinueServer received headers
101
Switching ProtocolsProtocol upgrade accepted
200
OKRequest succeeded
201
CreatedResource created
204
No ContentSuccess without body
301
Moved PermanentlyPermanent redirect
302
FoundTemporary redirect
304
Not ModifiedUse cached content
307
Temporary RedirectRedirect with method preserved
308
Permanent RedirectPermanent redirect with method preserved
400
Bad RequestMalformed client request
401
UnauthorizedAuthentication required
403
ForbiddenPermission denied
404
Not FoundResource not found
405
Method Not AllowedMethod not supported
408
Request TimeoutClient request timeout
409
ConflictState conflict
410
GoneResource permanently removed
422
Unprocessable EntityValidation failed
429
Too Many RequestsRate limit exceeded
500
Internal Server ErrorUnexpected server failure
502
Bad GatewayInvalid upstream response
503
Service UnavailableTemporarily unavailable
504
Gateway TimeoutUpstream timeout
505
HTTP Version Not SupportedUnsupported HTTP version
Page reading mode

Deep expands pitfalls, recipes, snippets, FAQ, and related tools when you need troubleshooting or deeper follow-through.

About this tool

A complete searchable reference for all HTTP status codes. Filter by category (1xx informational, 2xx success, 3xx redirect, 4xx client error, 5xx server error) or search by code number and description. Each code includes a detailed explanation and real-world usage examples.

Compare & Decision

404 vs 410

404

Use it when the resource is missing or unknown.

410

Use it when the resource is intentionally gone and will not return.

Note: Both are not-found style responses, but 410 communicates a stronger permanence signal.

Business success payload vs transport-level HTTP status

Business payload only

Use only in legacy environments that cannot change status handling.

Correct transport status + payload

Use for modern APIs and observable client behavior.

Note: HTTP status should represent transport semantics, not be hidden in JSON fields.

Generic 500 fallback vs precise 4xx/5xx mapping

Generic 500 fallback

Use only during emergency stabilization windows.

Precise status mapping

Use as standard API contract behavior.

Note: Precise mapping improves retry logic, UX messages, and incident triage speed.

Retry on 429/503 vs immediate retry on all errors

Selective retry policy

Use when semantics indicate temporary limits or transient unavailability.

Blind retry policy

Avoid for validation errors and business-rule rejections.

Note: Retry decisions should follow status semantics, not one global switch.

Fast pass vs controlled workflow

Fast pass

Use for low-impact exploration and quick local checks.

Controlled workflow

Use for production delivery, audit trails, or cross-team handoff.

Note: Http Status Codes is more reliable when acceptance criteria are explicit before release.

Direct execution vs staged validation

Direct execution

Use for disposable experiments and temporary diagnostics.

Stage + verify

Use when outputs will be reused by downstream systems.

Note: Staged validation reduces silent compatibility regressions.

Failure Input Library

Validation error returned as 500

Bad input: Client sends malformed field but server responds with HTTP 500.

Failure: Clients retry needlessly and alerting treats user errors as server outages.

Fix: Map client-correctable input errors to 400/422 with actionable details.

Unauthorized access masked as 200 with error body

Bad input: Auth failure response: {"ok": false, "reason": "unauthorized"} with 200.

Failure: SDKs treat request as success and skip token refresh logic.

Fix: Return 401/403 consistently so middleware and clients behave correctly.

Treating all non-200 responses as server outages

Bad input: Alert rule marks every 4xx and 5xx as same severity incident.

Failure: Ops team chases client-side mistakes while real server faults grow.

Fix: Split alert channels by status family and enforce distinct runbooks.

Input assumptions are not normalized

Bad input: Input policy differs between environments.

Failure: Output appears valid locally but fails during downstream consumption.

Fix: Normalize contracts and enforce preflight checks before export.

Compatibility boundaries are implicit

Bad input: Compatibility assumptions remain implicit and drift over time.

Failure: Same source data yields inconsistent outcomes across environments.

Fix: Declare compatibility constraints and verify with an independent consumer.

Direct Answers

Q01

Why keep an HTTP status tool nearby?

Because 301 vs 302, 401 vs 403, or 404 vs 410 mistakes are common under delivery pressure.

Q02

Should I choose the closest-looking status code?

No. The exact code changes caching, client behavior, and debugging expectations.

Quick Decision Matrix

Client can fix request and retry manually

Recommend: Use 4xx codes with explicit remediation hints.

Avoid: Avoid 5xx for request-shape or permission issues.

Service instability or transient upstream dependency failure

Recommend: Use 5xx + retry guidance and observability correlation IDs.

Avoid: Avoid returning 200 with hidden error flags.

Traffic spike triggers mixed 4xx and 5xx errors

Recommend: Separate contract regressions (4xx) from runtime capacity faults (5xx) before mitigation.

Avoid: Avoid one-size-fits-all rollback decisions based only on total error rate.

Local exploration and temporary diagnostics

Recommend: Use fast pass with lightweight verification.

Avoid: Avoid promoting exploratory output directly to production artifacts.

Production release, compliance, or cross-team handoff

Recommend: Use staged workflow with explicit validation records.

Avoid: Avoid one-step execution without replayable evidence.

Failure Clinic (Common Pitfalls)

Using generic 500 for every failure

Cause: Broad server errors hide meaning from clients and from your own team.

Fix: Choose the most accurate status that reflects the actual failure class.

Scenario Recipes

01

Check the right response code for an API or page

Goal: Look up what a status code means before locking response behavior or documentation.

  1. Search by code or keyword.
  2. Read the short meaning and detail explanation.
  3. Copy the status line or example when documenting the behavior.

Result: You reduce the chance of using a status code that sends the wrong signal.

02

Incident triage board by status-code family

Goal: Prioritize release incidents by quickly mapping logs to 4xx/5xx ownership paths.

  1. Group incoming error spikes by status family first.
  2. Map 4xx to client/request-contract issues and 5xx to service/runtime issues.
  3. Open two parallel fix tracks with separate rollback criteria.

Result: Incident owners avoid cross-team confusion and restore faster.

03

Http Status Codes readiness pass for production rollout checklist

Goal: Validate assumptions before output enters shared workflows.

  1. Run representative samples and capture output structure.
  2. Replay edge cases with downstream acceptance criteria.
  3. Publish only after sample and edge-case checks both pass.

Result: Delivery quality improves with less rollback and rework.

04

Http Status Codes incident replay for post-release regression analysis

Goal: Convert recurring failures into repeatable diagnostics.

  1. Rebuild problematic inputs in an isolated environment.
  2. Compare expected and actual outputs against explicit pass criteria.
  3. Document reusable runbook steps for on-call and handoff.

Result: Recovery time drops and operational variance shrinks.

Production Snippets

Status line sample

http

HTTP/1.1 404 Not Found

Suggested Workflow

Practical Notes

Correct status codes reduce client complexity. Many integration bugs come from semantically wrong status usage, not payload issues.

Design principles

Use 2xx for successful outcomes, 4xx for client-correctable issues, and 5xx for server faults that clients cannot fix.

Differentiate 400, 401, 403, 404, and 422 clearly to improve retry and error-handling behavior.

API governance

Document status code contracts in API docs and enforce them in contract tests.

When changing status semantics, version the endpoint or provide a transition window to avoid breaking clients.

Use It In Practice

HTTP Status Codes is most reliable with real inputs and scenario-driven decisions, especially around "Client can fix request and retry manually".

Use Cases

  • When Client can fix request and retry manually, prioritize Use 4xx codes with explicit remediation hints..
  • When Service instability or transient upstream dependency failure, prioritize Use 5xx + retry guidance and observability correlation IDs..
  • Compare 404 vs 410 for 404 vs 410 before implementation.

Quick Steps

  1. Search by code or keyword.
  2. Read the short meaning and detail explanation.
  3. Copy the status line or example when documenting the behavior.

Avoid Common Mistakes

  • Common failure: Clients retry needlessly and alerting treats user errors as server outages.
  • Common failure: SDKs treat request as success and skip token refresh logic.

Frequently Asked Questions

What is the difference between 401 and 403?

401 Unauthorized means authentication is required and has failed or not been provided. 403 Forbidden means the server understood the request but refuses to authorize it — the user is authenticated but lacks permission.

What is the difference between 301 and 302 redirects?

301 is a permanent redirect, telling browsers and search engines to update their records. 302 is temporary, meaning the original URL should be kept. For SEO, 301 passes link equity while 302 does not.

When should I use 422 instead of 400?

Use 400 for malformed requests (invalid JSON syntax). Use 422 for requests that are syntactically valid but semantically wrong — such as failing business logic validation like an invalid email format.

Can I use this output directly in production?

Yes, but you should still validate output in your real runtime environment before deployment. HTTP Status Codes is designed for fast local verification and clean copy-ready results.

Does this tool run fully client-side?

Yes. All processing happens in your browser and no input is uploaded to a server.

How can I avoid formatting or parsing errors?

Use well-formed input, avoid mixed encodings, and paste minimal reproducible samples first. Then scale to full content after the preview looks correct.