EN

HTTP Status Codes

Reference for 56 common HTTP status codes, grouped by class with causes and fixes

FAQ

What is the difference between 301 and 302?

301 is permanent and search engines transfer ranking signals to the new URL. 302 is temporary and signals stay with the original. Use 301 for domain migrations.

401 vs 403?

401 means unauthenticated (not logged in or bad credentials); 403 means authenticated but not allowed. Respond 401 to prompt a login and 403 to indicate missing permission.

502 vs 504?

502 means the gateway received an invalid response from upstream (crashed or malformed), 504 means the upstream timed out. Investigate the upstream process for 502 and its performance for 504.

About this tool

56 common HTTP status codes with the original name, a Chinese name, the category and a short explanation, grouped for quick lookup and copyable as a whole table. The data ships with the page, so it works offline.

The four redirects are the most frequently confused: 301 is permanent (browsers and search engines cache it; use it for site moves, but a wrong 301 is painful to undo); 302 is temporary but historically allowed clients to turn POST into GET; 307 is temporary while preserving method and body; 308 is permanent and also preserves the method. For API redirects where the request is a POST, 301/302 are how "my REST call silently became a GET" incidents happen - use 307 or 308.

401 versus 403: 401 means "you have not proven who you are" - missing or invalid credentials, usually with a WWW-Authenticate header; 403 means "I know who you are and you still cannot do this", so logging in again achieves nothing. Using 401 for authorisation failures makes clients pop up login prompts in a loop.

404 versus 410 is a semantic difference: 410 tells crawlers the resource existed and is permanently gone, which removes it from the index faster than 404; when a future restoration is possible, stay with 404.

Among 5xx, 502 and 504 deserve their own note: they are usually produced by a reverse proxy (Nginx, CDN, gateway) - 502 means the upstream replied with something invalid or the connection was reset, 504 means the upstream timed out. Look behind the proxy first. 429 means rate limited, normally with Retry-After; 503 can carry the same header for temporary unavailability and is safe to retry; 500 should not be retried blindly, it means the code already threw.

This is a reference table only: it sends no requests, simulates no responses and does not probe your live service. For that, use curl -I or the Network panel in developer tools.