Every time your browser requests a web page, the server responds with an HTTP status code. These three-digit codes communicate whether the request succeeded, failed or requires further action. Understanding them helps you troubleshoot problems and build better websites.
Status Code Categories
- 1xx Informational — Request received, continuing process
- 2xx Success — Request was received, understood and accepted
- 3xx Redirection — Further action needed to complete the request
- 4xx Client Error — Request contains bad syntax or cannot be fulfilled
- 5xx Server Error — Server failed to fulfil a valid request
The Most Important Status Codes
200 OK
The request succeeded. The server returned the requested resource. This is the response you want to see for every page on your site.
301 Moved Permanently
The page has permanently moved to a new URL. The browser and search engines are redirected to the new address. Search engines transfer ranking signals to the new URL. Use 301 for permanent redirects (e.g. HTTP → HTTPS, old page → new URL).
302 Found (Temporary Redirect)
The page is temporarily at a different URL. Search engines keep the original URL in their index. Use 302 only for genuinely temporary redirects.
304 Not Modified
The browser's cached version of the resource is still current. The server doesn't send the resource again — the browser uses the cached copy. Improves performance.
400 Bad Request
The server couldn't understand the request due to invalid syntax. Common causes: malformed URL, invalid query parameters.
401 Unauthorised
Authentication is required to access the resource. The user must log in or provide valid credentials.
403 Forbidden
The server understood the request but refused to fulfil it. The user doesn't have permission — even if authenticated. Common cause: file permissions incorrectly set on the server.
404 Not Found
The most familiar error — the server couldn't find the requested resource. The page doesn't exist at that URL. Common causes: deleted pages, mistyped URLs, broken links.
429 Too Many Requests
The user has sent too many requests in a short period (rate limiting). Common on APIs. The server may include a Retry-After header.
500 Internal Server Error
A generic error indicating something went wrong on the server side. Common causes: PHP errors, database failures, misconfigurations.
502 Bad Gateway
The server received an invalid response from an upstream server. Common with reverse proxies and load balancers.
503 Service Unavailable
The server is temporarily unable to handle the request — overloaded or under maintenance.
Checking HTTP Status Codes
You can check the HTTP status code for any URL using our HTTP Header Checker. The status code is returned in the response headers.