HTTP6 min read· Updated Jul 2026

Understanding HTTP Status Codes

Every HTTP response carries a three-digit status code that tells you, at a glance, what happened. The first digit sets the category; the rest gives the specifics. Knowing the classes turns a cryptic number into a clear next step.

The five classes

  • 1xx — Informational: the request was received, processing continues (rarely seen directly).
  • 2xx — Success: the request worked.
  • 3xx — Redirection: further action (usually following a new URL) is needed.
  • 4xx — Client error: the request was wrong (bad URL, no permission, bad input).
  • 5xx — Server error: the request was fine but the server failed to fulfil it.

The ones you'll actually see

  • 200 OK — success, the standard healthy response.
  • 301 Moved Permanently — the URL has permanently changed; passes SEO value to the new one.
  • 302 / 307 Found / Temporary Redirect — a temporary redirect; the original URL stays canonical.
  • 304 Not Modified — the cached copy is still valid; nothing re-sent.
  • 400 Bad Request — the server couldn't parse the request.
  • 401 Unauthorized — authentication required or failed.
  • 403 Forbidden — authenticated but not allowed.
  • 404 Not Found — the resource doesn't exist.
  • 429 Too Many Requests — you're being rate-limited.
  • 500 Internal Server Error — a generic server-side failure.
  • 502 Bad Gateway — an upstream server returned an invalid response.
  • 503 Service Unavailable — the server is overloaded or down for maintenance.
  • 504 Gateway Timeout — an upstream server didn't respond in time.

4xx vs 5xx: whose fault is it?

The dividing line is responsibility. A 4xx means the client sent something the server can't or won't handle — fix the request, the URL, or the credentials. A 5xx means the request was valid but the server broke — the fix is on the server or its upstreams, and there's usually nothing the client can do but retry.

What to do with them

  • Seeing 200 but the page looks wrong → the status is fine; the problem is in the page content or client rendering.
  • 301/302 chains → each hop adds latency; collapse long redirect chains.
  • Sudden 5xx spike → check server logs, backend health, and recent deploys.
  • Unexpected 403/401 → check auth config, permissions, and any WAF/firewall rules.
Put it into practice
Run a HTTP Check test from 5 global locations — free.
Run HTTP Check

Frequently asked questions

Is a 3xx status an error?

No. 3xx codes are redirects — the request succeeded but points you to another URL. They're normal, though long chains of them add latency and should be kept short.

What's the difference between 502 and 503?

A 502 Bad Gateway means a proxy got an invalid response from an upstream server. A 503 Service Unavailable means the server itself is temporarily unable to handle the request, often due to overload or maintenance.

Keep reading