HTTP Status Codes
About HTTP Status Codes
A status code is the server's one-line answer, three digits, and the first digit sets the family. 1xx means information, 2xx means success, 3xx means go somewhere else, 4xx means the request had a problem, and 5xx means the server did.
Telling 4xx from 5xx saves time. A 404 or a 403 is usually something to fix on your side. A 502 or 504 is a reason to check with whoever runs the server, or simply wait. 401 and 403 get mixed up a lot: 401 means you have not proved who you are, 403 means you did and it still is not allowed.
The table below covers 35 codes with both names and a plain explanation. Filter by family or search for a number. Yes, 418 is in there too.
Frequently asked questions
Should I use 301 or 302?
301 when the move is permanent and you want search engines to transfer ranking to the new address. 302 when it is a temporary detour. HTTPS upgrades and domain changes are almost always 301.
Is 304 an error?
No, it is the most economical kind of success. The browser asks with a cache validator, the server says nothing changed, and the body is not sent again.
What is the difference between 502 and 504?
502 means the gateway got an invalid response from the backend, which may be down. 504 means the gateway waited for the backend and gave up because it was too slow.
Why do some 404 pages return 200?
That is a misconfiguration. A missing page should answer with 404, otherwise search engines will happily index it as a normal page.