HTTP Status Code Reference
Quick reference for all HTTP status codes with descriptions and use cases.
Continue
The server has received the request headers, the client should proceed to send the request body.
Switching Protocols
The server is switching protocols as requested by the client via the Upgrade header.
Processing
The server has received and is processing the request, but no response is available yet.
Early Hints
Used to return some response headers before final HTTP message. Allows preloading resources.
OK
Standard response for successful HTTP requests. The meaning varies by method (GET returns resource, POST returns result).
Created
The request has been fulfilled and a new resource has been created.
Accepted
The request has been accepted for processing, but processing is not complete.
No Content
The server successfully processed the request but returns no content.
Partial Content
The server is delivering only part of the resource due to a Range header sent by the client.
Moved Permanently
The resource has been permanently moved to a new URL. Search engines transfer ranking to the new URL.
Found
The resource temporarily resides at a different URL. The client should continue using the original URL.
See Other
The response can be found at another URL using a GET request. Often used after POST/PUT.
Not Modified
The resource has not been modified since the version specified by If-Modified-Since or If-None-Match headers.
Temporary Redirect
Like 302, but guarantees that the method and body will not change when the request is reissued.
Permanent Redirect
Like 301, but guarantees that the method and body will not change when the request is reissued.
Bad Request
The server cannot process the request due to a client error (malformed syntax, invalid parameters).
Unauthorized
Authentication is required. The client must authenticate itself to get the requested response.
Forbidden
The server understood the request but refuses to authorise it. Unlike 401, re-authenticating will not help.
Not Found
The requested resource could not be found on the server. The most common error on the web.
Method Not Allowed
The request method is not supported for the resource (e.g., GET on a POST-only endpoint).
Not Acceptable
The server cannot produce a response matching the Accept headers sent by the client.
Request Timeout
The server timed out waiting for the request from the client.
Conflict
The request conflicts with the current state of the server (e.g., duplicate resource).
Gone
The resource is no longer available and will not be available again. Unlike 404, this is permanent.
Payload Too Large
The request body is larger than the server is willing to process.
URI Too Long
The URI requested by the client is longer than the server is willing to interpret.
Unsupported Media Type
The media type of the request data is not supported by the server.
I'm a Teapot
An April Fools joke from 1998 (RFC 2324). The server refuses to brew coffee because it is a teapot.
Unprocessable Entity
The request was well-formed but contains semantic errors (commonly used in REST APIs for validation).
Too Many Requests
The client has sent too many requests in a given time period (rate limiting).
Unavailable For Legal Reasons
The resource is unavailable due to legal demands (censorship, court order).
Internal Server Error
A generic error when the server encounters an unexpected condition.
Not Implemented
The server does not support the functionality required to fulfil the request.
Bad Gateway
The server, acting as a gateway, received an invalid response from the upstream server.
Service Unavailable
The server is currently unable to handle the request due to maintenance or overload.
Gateway Timeout
The server, acting as a gateway, did not receive a timely response from the upstream server.
36 of 36 status codes shown
An HTTP status code is a three-digit number a server returns with every response, telling the browser, crawler, or API client what happened to the request. This reference groups the codes into their five classes and explains the ones you will actually encounter, along with how each affects users and search engines.
How to use it
- Find the status code you received in your browser console, server logs, or an API response.
- Match the first digit to its class below to understand the general category (success, redirect, client error, or server error).
- Look up the specific code to read its precise meaning and the typical cause.
- Check whether it is permanent or temporary, since that decides whether to fix configuration, retry the request, or update a link.
The five status code classes
Every code falls into one of five ranges, signalled by its leading digit:
| Class | Meaning |
|---|---|
| 1xx | Informational — request received, processing continues |
| 2xx | Success — the request was understood and accepted |
| 3xx | Redirection — further action is needed to complete the request |
| 4xx | Client error — the request was malformed or not allowed |
| 5xx | Server error — the server failed to fulfil a valid request |
The codes that matter most in day-to-day work: 200 OK, the standard success response. 301 is a permanent redirect that passes ranking signals to the new URL, while 302 is temporary and keeps the original URL indexed. 304 Not Modified tells the browser its cached copy is still valid. 400 means a bad request, 401 requires authentication, and 403 means access is forbidden even when authenticated. 404 Not Found signals a missing resource, whereas 410 Gone confirms it was removed deliberately and permanently. 429 Too Many Requests indicates rate limiting. On the server side, 500 is a generic internal error, 502 a bad gateway, and 503 a service that is temporarily unavailable.
FAQ
What is the difference between 301 and 302 for SEO?
A 301 permanently moves a page and tells search engines to transfer ranking signals to the destination and index it instead. A 302 is temporary, so engines keep the original URL indexed. Using 302 when you meant 301 can prevent the new URL from ever taking over in results.
Should I use 404 or 410 for deleted pages?
Both keep a page out of search results. A 404 suggests the resource might return, so crawlers may revisit it. A 410 states the page is permanently gone, which can prompt faster removal from the index. Use 410 when you are certain the content will never come back.
What does a 429 mean and how do I respond?
A 429 means you have sent too many requests in a given window and have been rate limited. Responses often include a Retry-After header indicating how long to wait. Slow your request rate or back off exponentially before trying again.
Are 5xx errors my fault or the server's?
5xx codes signal a server-side failure, not a problem with your request. A 502 or 503 usually points to an overloaded or misconfigured backend or gateway. They are often temporary, so retrying after a short delay is reasonable, but persistent 5xx errors need investigation on the server.
Related Tools
JSON Formatter
Pretty-print, validate and minify JSON
Base64 Encoder/Decoder
Encode and decode Base64 strings and files
Colour Picker
Pick colours and convert between HEX, RGB and HSL
UUID Generator
Generate random UUID v4 identifiers
URL Encoder/Decoder
Encode and decode URLs and query strings
Regex Tester
Test regular expressions with match highlighting