Every HTTP status code explained — what each class means, the full reference table, and deep dives into the codes that actually page people at 3am.
Every HTTP response starts with a three-digit status code. The first digit tells
you who's talking and how it went:
Class
Meaning
Who's at fault
1xx
Informational — request received, keep going
Nobody
2xx
Success — the request worked
Nobody
3xx
Redirection — the resource is elsewhere
Nobody (usually)
4xx
Client error — the request was wrong
The caller
5xx
Server error — the request was fine, the server wasn't
You
The distinction matters for monitoring: a 4xx on a health check usually
means a broken URL or expired credentials in the check itself, while a 5xx
means your service is genuinely misbehaving — which is why
HTTP monitors treat them differently by default.
CDN vendor codes: Cloudflare extends 5xx with its own codes (520–526) —
for example 522 is "connection timed out reaching the origin" and 525 is an
SSL handshake failure with the origin. If you're behind Cloudflare, those
codes point at the connection between the CDN and your server.
Reproduce with full detail — the free
HTTP header checker shows the status, every response
header and the complete redirect chain for any URL.
Check whether it's you or them — run the check
from multiple regions; a 5xx from one region but not
others usually means a network path or CDN PoP issue, not your origin.
Watch it over time — a one-off 502 during a deploy is normal; a 502
every few minutes is a failing backend. An
HTTP monitor with
confirmed alerting makes that distinction for
you.