HTTP Status Codes Explained: What 4xx and 5xx Really Mean
A plain tour of the standard HTTP status code classes, with a searchable IANA reference you can filter by class from 1xx to 5xx.
The first digit is the class
Every HTTP status code is three digits, and the first digit tells you which of five classes it belongs to. 1xx is informational — the request was received and the server is still working. 2xx is success. 3xx is redirection. 4xx is a client error. 5xx is a server error.
The class alone tells you who is likely at fault, which is often all you need before you reach for the exact code. The page groups every code by class so you can scan one band at a time, and the 1xx-5xx chips filter the list to a single class.
Client or server? 4xx vs 5xx
A 4xx means the request itself was the problem: a typo in a URL (404), a missing or bad credential (401, 403), a body that failed validation (422), or too many requests in a short window (429). Retrying the same request unchanged will usually fail the same way; fix the request first.
A 5xx means the request was fine but the server could not complete it: an unhandled exception (500), a broken upstream (502), an overloaded or down service (503), or an upstream that took too long (504). These are often transient, so a bounded retry with backoff is reasonable — but a persistent 500 is a server bug, not something the client can fix.
The codes you will actually meet
In day-to-day API work a handful of codes cover most traffic: 200 OK and 201 Created on success; 301 and 308 for permanent redirects and 302, 303, 307 for temporary ones; 304 Not Modified for cache validation; and on the error side 400, 401, 403, 404, 409, 410, 422 and 429.
The 5xx set is smaller but worth knowing by heart: 500, 502, 503 and 504. If you build retries and dashboards, those four plus 429 are the ones that drive your alerting.
Registered is not the same as universal
The codes shown here are the ones in the IANA HTTP Status Code Registry. That includes the WebDAV codes from RFC 4918 (207 Multi-Status, 423 Locked, 424 Failed Dependency, 507 Insufficient Storage) and newer registrations such as 425 Too Early and 451 Unavailable For Legal Reasons.
Many servers and CDNs also use private codes that are not in the registry — 599 for a network connect timeout is a common one. Those are tagged unofficial in the list so you never mistake a vendor convention for a standard.
Look one up
Type a number, a reason phrase or a word from the description to filter the list, or narrow it with the class chips. Each entry shows the registered reason phrase and a plain-English description of when it applies; for the exact normative wording, follow the RFC named in the IANA registry.
The whole reference is loaded as part of the page and the search runs in this tab. Nothing you type is sent anywhere.
Try it free — HTTP Status Codes
A searchable IANA reference of HTTP status codes with registered reason phrases, plain-English descriptions and unofficial badges.
Open HTTP Status Codes