HTTP Status Codes
Complete list of HTTP status codes, names, and their meanings for web development.
1xx Informational Response
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.
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.
2xx Success
OK
Standard response for successful HTTP requests.
Created
The request has been fulfilled, resulting in the creation of a new resource.
Accepted
The request has been accepted for processing, but the processing has not been completed.
Non-Authoritative Information
The server is a transforming proxy that received a 200 OK from its origin, but is returning a modified version of the origin's response.
No Content
The server successfully processed the request and is not returning any content.
Reset Content
The server successfully processed the request, but is not returning any content and requires that the requester reset the document view.
Partial Content
The server is delivering only part of the resource due to a range header sent by the client.
Multi-Status
The message body that follows is by default an XML message and can contain a number of separate response codes, depending on how many sub-requests were made.
Already Reported
The members of a DAV binding have already been enumerated in a preceding part of the multi-status response, and are not being included again.
IM Used
The server has fulfilled a request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.
3xx Redirection
Multiple Choices
Indicates multiple options for the resource from which the client may choose.
Moved Permanently
This and all future requests should be directed to the given URI.
Found
Tells the client to look at (browse to) another URL.
See Other
The response to the request can be found under another URI using the GET method.
Not Modified
Indicates that the resource has not been modified since the version specified by the request headers If-Modified-Since or If-None-Match.
Use Proxy
The requested resource is available only through a proxy, the address for which is provided in the response.
Switch Proxy
No longer used. Originally meant "Subsequent requests should use the specified proxy".
Temporary Redirect
In this case, the request should be repeated with another URI; however, future requests should still use the original URI.
Permanent Redirect
The request and all future requests should be repeated using another URI.
4xx Client Error
Bad Request
The server cannot or will not process the request due to an apparent client error.
Unauthorized
Similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided.
Payment Required
Reserved for future use. The original intention was that this code might be used as part of some form of digital cash or micro-payment scheme.
Forbidden
The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account of some sort.
Not Found
The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible.
Method Not Allowed
A request method is not supported for the requested resource.
Not Acceptable
The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request.
Proxy Authentication Required
The client must first authenticate itself with the proxy.
Request Timeout
The server timed out waiting for the request.
Conflict
Indicates that the request could not be processed because of conflict in the current state of the resource.
Gone
Indicates that the resource requested is no longer available and will not be available again.
Length Required
The request did not specify the length of its content, which is required by the requested resource.
Precondition Failed
The server does not meet one of the preconditions that the requester put on the request header fields.
Payload Too Large
The request is larger than the server is willing or able to process.
URI Too Long
The URI provided was too long for the server to process.
Unsupported Media Type
The request entity has a media type which the server or resource does not support.
Range Not Satisfiable
The client has asked for a portion of the file, but the server cannot supply that portion.
Expectation Failed
The server cannot meet the requirements of the Expect request-header field.
I'm a teapot
This code was defined in 1998 as one of the traditional IETF April Fools' jokes, in RFC 2324, Hyper Text Coffee Pot Control Protocol.
Misdirected Request
The request was directed at a server that is not able to produce a response.
Unprocessable Entity
The request was well-formed but was unable to be followed due to semantic errors.
Locked
The resource that is being accessed is locked.
Failed Dependency
The request failed due to failure of a previous request.
Too Early
Indicates that the server is unwilling to risk processing a request that might be replayed.
Upgrade Required
The client should switch to a different protocol such as TLS/1.0, given in the Upgrade header field.
Precondition Required
The origin server requires the request to be conditional.
Too Many Requests
The user has sent too many requests in a given amount of time.
Request Header Fields Too Large
The server is unwilling to process the request because either an individual header field, or all the header fields collectively, are too large.
Unavailable For Legal Reasons
A server operator has received a legal demand to deny access to a resource or to a set of resources that includes the requested resource.
5xx Server Error
Internal Server Error
A generic error message, given when an unexpected condition was encountered and no more specific message is suitable.
Not Implemented
The server either 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 (because it is overloaded or down for maintenance). Generally, this is a temporary state.
Gateway Timeout
The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.
HTTP Version Not Supported
The server does not support the HTTP protocol version used in the request.
Variant Also Negotiates
Transparent content negotiation for the request results in a circular reference.
Insufficient Storage
The server is unable to store the representation needed to complete the request.
Loop Detected
The server detected an infinite loop while processing the request.
Not Extended
Further extensions to the request are required for the server to fulfill it.
Network Authentication Required
The client needs to authenticate to gain network access.
How to Use This HTTP Status Codes
- Browse the list of HTTP status codes organized by category.
- Use the search or filter to find a specific status code quickly.
- Click on any code to see its detailed description and usage.
- Reference the code meaning when debugging API responses or server issues.
About HTTP Status Codes
HTTP response status codes indicate whether a specific HTTP request has been successfully completed. They are categorized into five classes based on the first digit.
Tip
Codes like 200 (OK), 404 (Not Found), and 500 (Internal Server Error) are most common in web development.
Key Features
- Complete reference of all standard HTTP status codes
- Organized by category: 1xx Informational, 2xx Success, 3xx Redirection, 4xx Client Error, 5xx Server Error
- Detailed descriptions explaining when each code is used
- Search and filter functionality for quick lookup
- Covers both standard RFC codes and common non-standard codes
- Clean, easy-to-read layout for fast reference
- Works offline once loaded in your browser
Common Use Cases
- Debugging failed API requests and server responses
- Learning which status code to return from your REST API endpoints
- Understanding redirect chains (301 vs 302 vs 307)
- Diagnosing authentication and authorization errors (401 vs 403)
- Configuring error pages for web servers like Nginx or Apache
- Preparing for web development interviews and certifications
Frequently Asked Questions
What is the difference between 401 and 403 status codes?
A 401 Unauthorized means the request lacks valid authentication credentials. The client should authenticate and retry. A 403 Forbidden means the server understood the request but refuses to authorize it, even with valid credentials. The user simply does not have permission.
When should I use 301 vs 302 redirects?
Use 301 (Moved Permanently) when a resource has permanently moved to a new URL and you want search engines to update their index. Use 302 (Found) for temporary redirects where the original URL should still be used in the future.
What does a 500 Internal Server Error mean?
A 500 error is a generic server-side error indicating something went wrong on the server but the exact problem is not specified. It usually points to unhandled exceptions, configuration errors, or bugs in server-side code. Check server logs for details.