Every web request ends in a three digit number, and that number is the server giving evidence about itself. Browsers hide most of them behind error pages with friendly illustrations, which is kind to users and useless to anyone fixing the thing. The codes are not trivia. They are a short, standard vocabulary for what just happened between two machines, and once you can read them, half of all web debugging becomes reading comprehension instead of guesswork. The full list runs past sixty. These are the ones that carry the traffic.
01 · THE TABLE
| Code | Official name | Translation |
|---|---|---|
| 200 | OK | Worked. The thing you asked for is in this reply. |
| 201 | Created | Worked, and something new now exists because of it. |
| 204 | No Content | Worked. There is nothing to show you about it. |
| 301 | Moved Permanently | That address is retired. Use the new one, forever. |
| 302 | Found | It is over there for now. Keep the old address. |
| 304 | Not Modified | Your cached copy is still current. Save the bandwidth. |
| 400 | Bad Request | The request itself was malformed. Fix the question. |
| 401 | Unauthorized | You have not proved who you are. Log in first. |
| 403 | Forbidden | I know who you are. You are still not allowed. |
| 404 | Not Found | Nothing lives at that address, as far as you are told. |
| 405 | Method Not Allowed | Right address, wrong verb. You cannot POST to that. |
| 409 | Conflict | Your change collides with the current state. Reload. |
| 418 | I'm a Teapot | A joke from 1998 that servers still honour. Respect it. |
| 429 | Too Many Requests | Slow down. You are asking faster than allowed. |
| 500 | Internal Server Error | The server broke on its own code. Not your fault. |
| 502 | Bad Gateway | The front door asked the back room and got nonsense. |
| 503 | Service Unavailable | Down, overloaded, or restarting. Try again later. |
02 · THE FAMILIES
The first digit does most of the talking. Codes in the 200s mean the request worked and the argument is over. Codes in the 300s mean the thing moved and the answer is a forwarding address; the difference between 301 and 302 is whether the move is permanent, which search engines care about even when users do not. Codes in the 400s mean the client made the mistake: bad syntax, missing login, wrong address, wrong verb. Codes in the 500s mean the server made the mistake, and no amount of refreshing your request format will fix code on somebody else's machine. Read the family first and you already know whose desk the problem sits on, which is the single most useful sentence in any outage.
03 · THE TWO THAT CAUSE ARGUMENTS
401 and 403 look like synonyms and are not. A 401 says the server does not know who you are yet; it is an invitation to authenticate, despite its official name being Unauthorized. A 403 says identity is settled and permission is still no. Logging in again fixes a 401. Logging in again in front of a 403 is a ritual, not a remedy. The 404 deserves its own note because it is partly a design choice: a careful server returns 404 for things that exist but are not yours to see, since confirming existence is information. When a site answers 404, the accurate translation is often not, we lost it, but, you may not know.
04 · LIMITS
Codes describe the door, not the room. A 200 can carry an error message in a pretty page, an API can answer 200 with a body that says failed, and a 500 tells you the server broke without saying where, which is correct behaviour for a public answer and maddening at midnight. Treat codes as the first sentence of the report, then read the body, then read the logs. A printed version of the table lives free as a poster on this shop's Products page, sized for the wall above the monitor where the error messages land.
The next time a page fails, open the network tab, read the three digit number out loud, and name whose fault the family says it is before you touch anything.