Omnikit
DevFilesMoneyAll tools
Ctrl K
Dev toolsFile toolsMoney calculatorsAll tools
HomeDeveloper toolsHTTP Status Codes
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

HTTP Status Codes

dev

Every HTTP status code, what it means, when to send it and the RFC it comes from

Runs in your browser. Nothing you type is sent anywhere. Updated on 25 Oct 2026.

An HTTP status code says what happened in 3 digits. 404 means the thing was never there, 410 means it was and is gone for good, and 301 moves it permanently. Every code is listed here with when to send it and the RFC that defines it.

Next:
  • HTTP Headers Checker See the status, response headers and redirect chain of any URL, with security checks
  • curl Converter Turn a curl command into fetch, Node, Python, PowerShell or HTTPie code

How to find out what an HTTP status code means

1

Type a number, a name or what you want to say, such as "rate limit", into the search box.

2

Narrow the Codes list with the Show chips: Common, All, or one class from 1xx to 5xx.

3

Select a code to read its meaning, when to use it, whether it is cacheable and the RFC that defines it.

4

Choose a language under "Send this code in" and press Copy snippet to take the code that returns it.

About HTTP Status Codes

This HTTP status codes reference lists every registered code from 100 to 511, plus the unregistered ones that nginx, Apache, Laravel and Cloudflare return. Each entry says what the code actually means, when to send it, whether a cache may store the response without cache headers, whether a redirect changes the request method, and which RFC defines it.

Search works three ways. Type a number such as 404, or a class such as 4xx, to jump straight to it. Type a name such as "not found". Or describe what you want to express, and the intent search finds the code: "login failed" gives 401, "rate limit" gives 429, "file too large" gives 413, "validation failed" gives 422.

Two details most lists get wrong are included here. Cacheability is not a yes or no: RFC 9110 section 15.1 names twelve codes a cache may store with no explicit headers at all, which is why an accidental 404 can stick. And redirects differ: 301 and 302 let a client turn a POST into a GET, 303 always does, while 307 and 308 must repeat the method and body exactly.

Every common code comes with a copyable snippet for raw HTTP, Express, Fastify, FastAPI, Go and PHP, including the header that code requires, such as WWW-Authenticate on a 401 or Allow on a 405. Nothing is sent anywhere; the whole table is in the page.

Frequently asked questions

Which HTTP status code should I use for a failed login?

Use 401 Unauthorized. It means the server does not know who you are, so a missing, expired or wrong credential belongs there. Use 403 Forbidden only when you know who the caller is and are still refusing. The specification wants a WWW-Authenticate header on every 401.

What is the difference between 401 and 403?

401 means unauthenticated: send credentials and try again. 403 means authenticated but not allowed: better credentials will not help. If revealing that a record exists is itself a leak, some APIs answer 404 instead of 403 so an attacker learns nothing.

Which HTTP status codes are cacheable by default?

RFC 9110 section 15.1 lists 200, 203, 204, 206, 300, 301, 308, 404, 405, 410, 414 and 501 as heuristically cacheable, and RFC 7725 adds 451. A cache may store those with no Cache-Control or Expires header, which is why a temporary 404 can persist. Every other code needs explicit cache headers.

Does a 301 redirect change a POST into a GET?

The specification does not allow it, but nearly every browser does exactly that for 301 and 302. A 303 always turns the next request into a GET. If the method and body must survive the redirect, use 307 for a temporary move or 308 for a permanent one.

What is HTTP status code 418?

418 I'm a Teapot comes from RFC 2324, an April Fools' joke from 1998 about a coffee pot protocol. A 2017 proposal to reuse the number was withdrawn after objections, so it stays reserved in the IANA registry and must never be used for a real meaning.

Are 499, 520 and 521 real HTTP status codes?

No. 499 is an nginx log-only code for a client that hung up, and 520 to 527 are Cloudflare codes for problems between the edge and your origin. None are registered with IANA. They are listed here because you will meet them in logs, each marked with the product that invented it.

Still stuck? Ask about HTTP Status Codes and anybody who knows can answer. No account needed.

Common uses

  • HTTP 404 Not FoundWhat a 404 means, when to send it, and when 410 or 403 is the better answer
  • HTTP 500 Internal Server ErrorWhat causes a 500, how it differs from 502 and 503, and what to put in the body
  • HTTP 403 ForbiddenThe difference between 403 and 401, and when a 404 is the safer reply
  • HTTP 401 UnauthorizedThe code for a failed login or an expired token, and the header it must carry
  • HTTP 502 Bad GatewayWhy nginx and CDNs return 502, and how it differs from 503 and 504
  • What is HTTP 418The teapot status code: where it came from and why it is still reserved
  • HTTP 429 Too Many RequestsWhat a 429 rate-limit error means, how Retry-After works and how to stop hitting it
  • HTTP 503 Service UnavailableWhy a server returns 503, why it is the right code for maintenance, and how to fix it
  • HTTP 301 Moved PermanentlyThe permanent redirect: when to use 301, how browsers cache it, and 301 vs 308
  • HTTP 302 Found (Temporary Redirect)What a 302 redirect means, when to use it instead of 301, and 302 vs 307

Same job, other tools: Hadolint Online – Run hadolint rules on a Dockerfile in your browser, with no install and no Docker · Luhn Algorithm Checker – Run the Luhn mod 10 check on any number and see every doubled digit and the total.

On the related tools: Readability Checker – Flesch reading ease and grade level, with what to change.

Related tools

All developer tools
Dockerfile LinterCheck a Dockerfile against 55 hadolint rules: pinned versions, root user, cache and moreTitle Tag and Meta Description CheckerTitle and meta description length in characters and pixels, and where Google cuts themTest Credit Card NumbersSandbox card numbers from Stripe and Razorpay with expiry and CVV, and a Luhn checkerRegex TesterTest JavaScript regular expressions with live highlighting and a plain-English explanationDiff CheckerCompare two texts side by side and see every added and removed lineJSON DiffCompare two JSON documents and list every added, removed and changed valueOpen Graph PreviewPaste a page and see the share card for Facebook, LinkedIn, X, WhatsApp and SlackKeyword Density and ReadabilityWord and phrase counts, densities, reading time and a Flesch readability score

In the collection Debug and Inspect.

Was this tool helpful?
Omnikit

Small jobs, done in your browser. Free, fast and private. Files are never uploaded.

Files

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

Dev

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

Money

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
GuidesQuestionsAboutHow we checkLaw library (beta)PrivacyTermsDisclosureContactMore: Exam practice (UGC NET Paper 1)Runs in your browser. Nothing is uploaded. © 2026 Omnikit (theomnikit.com)