HTTP Status Codes
Complete reference guide for all HTTP status codes
1xx Informational
Continue
The server has received the request headers and the client should proceed to send the request body.
Switching Protocols
The requester has asked the server to switch protocols and the server has agreed to do so.
2xx Success
OK
The request has succeeded. The meaning depends on the HTTP method used.
Created
The request has been fulfilled and resulted in a new resource being created.
Accepted
The request has been accepted for processing, but the processing has not been completed.
No Content
The server successfully processed the request, but is not returning any content.
Partial Content
The server is delivering only part of the resource due to a range header sent by the client.
3xx Redirection
Moved Permanently
The URL of the requested resource has been changed permanently. The new URL is given in the response.
Found
The URI of requested resource has been changed temporarily. New changes in the URI might be made in the future.
Not Modified
Indicates that the resource has not been modified since the version specified by the request headers.
Temporary Redirect
The server sends this response to direct the client to get the requested resource at another URI with same method.
Permanent Redirect
The resource is now permanently located at another URI, specified by the Location: HTTP Response header.
4xx Client Errors
Bad Request
The server cannot or will not process the request due to an apparent client error.
Unauthorized
Authentication is required and has failed or has not yet been provided.
Forbidden
The request was valid, but the server is refusing action. The user might not have the necessary permissions.
Not Found
The requested resource could not be found but may be available in the future.
Method Not Allowed
A request method is not supported for the requested resource.
Request Timeout
The server timed out waiting for the request.
Conflict
The request could not be processed because of conflict in the current state of the resource.
Gone
The resource requested is no longer available and will not be available again.
Payload Too Large
The request is larger than the server is willing or able to process.
Unprocessable Entity
The request was well-formed but was unable to be followed due to semantic errors.
Too Many Requests
The user has sent too many requests in a given amount of time (rate limiting).
5xx Server Errors
Internal Server Error
A generic error message when an unexpected condition was encountered on the server.
Not Implemented
The server does not recognize the request method, or it lacks the ability to fulfill the request.
Bad Gateway
The server was acting as a gateway or proxy and received an invalid response from the upstream server.
Service Unavailable
The server is currently unavailable (overloaded or down for maintenance).
Gateway Timeout
The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.
About HTTP Status Codes
HTTP Status Codes is a free reference tool that provides the complete list of HTTP status codes with descriptions, explanations, and practical use cases. Search or browse any status code — from 100 Continue to 511 Network Authentication Required — and understand exactly what it means, when it is used, and what to do when you encounter it.
HTTP (HyperText Transfer Protocol) status codes are three-digit numbers returned by web servers in response to every HTTP request. They communicate whether a request succeeded, failed, or requires further action. Understanding them is fundamental to web development, API integration, SEO, and debugging. Every web developer, DevOps engineer, and SEO professional encounters status codes daily.
Status codes are organised into five classes by their first digit. 1xx (Informational) codes indicate the request was received and processing is continuing — rarely seen in practice. 2xx (Success) codes indicate the request was successfully received, understood, and accepted — 200 OK is the most common. 3xx (Redirection) codes indicate the client must take additional action to complete the request — 301 Moved Permanently and 302 Found are essential for SEO redirects. 4xx (Client Errors) indicate the request contains an error from the client side — 404 Not Found and 403 Forbidden are the most familiar. 5xx (Server Errors) indicate the server failed to fulfil a valid request — 500 Internal Server Error and 503 Service Unavailable indicate server-side problems.
For SEO, the distinction between redirect types is critical. A 301 redirect (permanent) passes full link equity (PageRank) to the destination URL and tells Google to update its index to the new URL. A 302 redirect (temporary) preserves link equity at the original URL and tells Google the original URL will return. Using 302 when 301 is intended is a common mistake that prevents domain authority from consolidating on the new URL after a migration.
How to Use HTTP Status Codes
- 1Search for a specific status code number or keyword (e.g. "404" or "redirect")
- 2Browse by category (2xx, 3xx, 4xx, 5xx)
- 3Click any code for a full description, when it is used, and what action to take
Frequently Asked Questions
A 301 is a permanent redirect — the resource has moved permanently. Browsers and search engines update their records to the new URL. Link equity passes to the new URL. A 302 is temporary — the resource is temporarily at the new location but may return. Search engines keep the original URL indexed and link equity stays on the original.
A 500 error indicates something went wrong on the server — a PHP or Python exception, a database connection failure, a misconfigured server, or exhausted server resources. The client's request was valid; the server failed to process it. Check server error logs for the specific cause.
401 Unauthorised means the request requires authentication — the client has not provided credentials (or provided invalid ones) and can try again with correct credentials. 403 Forbidden means the server understood the request but refuses to authorise it — even with valid credentials, this user or IP is not allowed access.
429 Too Many Requests is a rate limiting response — the client has sent too many requests in a given time period. The server may include a Retry-After header indicating when to try again. Implement exponential backoff in API clients to handle 429 responses gracefully.
You might also like
Try next