Complete list of HTTP response status codes with explanations and troubleshooting tips.
Frequently Asked Questions
What is a 404 error? â–¼
A 404 Not Found error means the server cannot find the requested resource. This usually happens when a URL is mistyped, a page has been deleted, or a link is broken. To fix it, check the URL for typos, ensure the page exists on the server, and set up proper redirects for moved content.
What is the difference between 301 and 302 redirects? â–¼
A 301 redirect is permanent — search engines will transfer SEO ranking to the new URL and update their index. A 302 redirect is temporary — the original URL keeps its ranking. Use 301 when permanently moving a page, and 302 for temporary situations like maintenance or A/B testing.
What does a 500 Internal Server Error mean? â–¼
A 500 error is a generic server-side error indicating something went wrong but the server can't be more specific. Common causes include code bugs, misconfigured settings, database connection failures, or file permission issues. Check server error logs for the specific cause.
What is a 403 Forbidden error? â–¼
A 403 error means the server understood the request but refuses to authorize it. Unlike 401 (Unauthorized), re-authenticating won't help. The client simply doesn't have permission. Common causes include incorrect file permissions, IP blocking, or directory listing restrictions.
What does 502 Bad Gateway mean? â–¼
A 502 error means a server acting as a gateway or proxy received an invalid response from an upstream server. This often happens when an application server (like Node.js or PHP-FPM) crashes, or when there's a network issue between Nginx/Apache and the backend. Usually resolved by restarting the app server or checking proxy configuration.
What is a 429 Too Many Requests error? â–¼
A 429 error means you've sent too many requests in a given time period (rate limiting). APIs use this to prevent abuse. The response usually includes a Retry-After header telling you how long to wait. Implement exponential backoff in your code to handle this gracefully.