HTTP Status Codes List
View and search HTTP status codes and their explanations. A comprehensive guide for developers and webmasters.
1xx Informational
- 100Continue
The client should continue with its request. This interim response indicates that everything so far is OK and that the client should continue with the request or ignore it if it is already finished.
- 101Switching Protocols
The server is switching protocols as requested by the client via an Upgrade request header.
- 102Processing
WebDAV; The server has received and is processing the request, but no response is available yet. This prevents the client from timing out and assuming the request was lost.
- 103Early Hints
The server is sending some headers before the final HTTP message. It's used to allow the client to start preloading resources while the server is still preparing the main response.
2xx Successful
- 200OK
The request has succeeded. The meaning of 'success' depends on the HTTP method: GET: The resource has been fetched and transmitted in the message body. HEAD: The entity headers are in the message body. POST or PUT: The resource describing the result of the action is transmitted in the message body. TRACE: The message body contains the request message as received by the server.
- 201Created
The request has been fulfilled and resulted in a new resource being created. The new resource is effectively created before this response is sent back and the new resource is returned in the body of the message, its location being either the URL of the request, or the content of the Location header.
- 202Accepted
The request has been accepted for processing, but the processing has not been completed. The request might or might not eventually be acted upon, as it might be disallowed when processing actually takes place.
- 203Non-Authoritative Information
The returned meta-information is from a local or third-party copy, not from the origin server, and might be incorrect. Except for this specific case, the 200 OK response is preferred to this status.
- 204No Content
The server successfully processed the request and is not returning any content. Useful for actions that don't require a response body, like a DELETE request.
- 205Reset Content
The server successfully processed the request, asks that the requester reset its document view, and is not returning any content. This is often used after submitting a form to clear the form fields for new input.
- 206Partial Content
The server is delivering only part of the resource (byte serving) due to a range header sent by the client. The range header is used by tools like wget to enable resuming of interrupted downloads, or split a download into multiple simultaneous streams.
- 207Multi-Status
WebDAV; Conveys information about multiple resources, for situations where multiple status codes might be appropriate. The body is an XML message.
- 208Already Reported
WebDAV; Used inside a <dav:propstat> response element to avoid repeatedly enumerating the internal members of multiple bindings to the same collection. The members of a binding have already been enumerated in a previous reply.
- 226IM Used
The server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance. (RFC 3229)
3xx Redirection
- 300Multiple Choices
Indicates multiple options for the resource from which the client may choose (e.g. different video formats, list of files with different extensions). The server may include a Location header with a preferred choice.
- 301Moved Permanently
This and all future requests should be directed to the given URI. Search engines will update their links to the resource (in 'SEO-speak', it is said that the 'link-juice' is sent to the new URL).
- 302Found
This response code means that the URI of the requested resource has been changed temporarily. Further changes in the URI might be made in the future. Therefore, this same URI should be used by the client in future requests.
- 303See Other
The server sent this response to direct the client to get the requested resource at another URI with a GET request. Typically used after a POST/PUT operation to prevent refreshing the page from re-submitting the form.
- 304Not Modified
Indicates that the resource has not been modified since the version specified by the request headers If-Modified-Since or If-None-Match. In such case, there is no need to retransmit the resource since the client still has a previously-downloaded copy.
- 305Use Proxy
Deprecated. The requested resource is available only through a proxy, the address for which is provided in the response. Many HTTP clients (like Mozilla Firefox and Internet Explorer) do not correctly handle responses with this status code, primarily for security reasons.
- 307Temporary Redirect
The server sends this response to direct the client to get the requested resource at another URI with same method that was used in the prior request. This has the same semantics as the 302 Found HTTP response code, with the exception that the user agent must not change the HTTP method used.
- 308Permanent Redirect
The resource is now permanently located at another URI, specified by the Location: HTTP Response header. This has the same semantics as the 301 Moved Permanently HTTP response code, with the exception that the user agent must not change the HTTP method used: if a POST was used in the first request, a POST must be used in the second request.
4xx Client Error
- 400Bad Request
The server cannot or will not process the request due to an apparent client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
- 401Unauthorized
Authentication is required and has failed or has not yet been provided. The response must include a WWW-Authenticate header field containing a challenge applicable to the requested resource. Sometimes used for 'Authorization failed' but 403 is more appropriate.
- 402Payment Required
Reserved for future use. The original intention was that this code might be used as part of some form of digital cash or micropayment scheme, but that has not yet happened, and this code is not widely used.
- 403Forbidden
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.
- 404Not Found
The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible. Often used when a server does not wish to reveal exactly why a request has been refused, or when no other response is applicable.
- 405Method Not Allowed
A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
- 406Not Acceptable
The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request. For example, the client requested XML, but the server can only provide JSON.
- 407Proxy Authentication Required
The client must first authenticate itself with the proxy. The proxy must send a Proxy-Authenticate header field containing a challenge applicable to the proxy for the requested resource.
- 408Request Timeout
The server timed out waiting for the request. According to HTTP specifications: 'The client did not produce a request within the time that the server was prepared to wait. The client MAY repeat the request without modifications at any later time.'
- 409Conflict
Indicates that the request could not be processed because of conflict in the current state of the resource, such as an edit conflict between multiple simultaneous updates.
- 410Gone
Indicates that the resource requested is no longer available and will not be available again. This should be used when a resource has been intentionally removed and the resource should be purged. Upon receiving a 410 status code, the client should not request the resource in the future.
- 411Length Required
The request did not specify the length of its content, which is required by the requested resource. The server will not accept the request without a valid Content-Length header.
- 412Precondition Failed
The server does not meet one of the preconditions that the requester put on the request header fields. This is often used with conditional GET requests (using If-Match or If-Unmodified-Since headers).
- 413Payload Too Large
The request is larger than the server is willing or able to process. Previously called 'Request Entity Too Large'.
- 414URI Too Long
The URI provided was too long for the server to process. Often the result of too much data being encoded as a query-string of a GET request, in which case it should be converted to a POST request. Previously called 'Request-URI Too Long'.
- 415Unsupported Media Type
The request entity has a media type which the server or resource does not support. For example, the client uploads an image as image/svg+xml, but the server requires that images use a different format.
- 416Range Not Satisfiable
The client has asked for a portion of the file (byte serving), but the server cannot supply that portion. For example, if the client asked for a part of the file that lies beyond the end of the file. Previously called 'Requested Range Not Satisfiable'.
- 417Expectation Failed
The server cannot meet the requirements of the Expect request-header field. The client sent an Expect header (e.g., Expect: 100-continue) that the server cannot fulfill.
- 418I'm a Teapot
This code was defined in 1998 as an April Fools' joke in RFC 2324, Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0), and is not expected to be implemented by actual HTTP servers. However, it is sometimes used as an Easter egg.
- 421Misdirected Request
The request was directed at a server that is not able to produce a response. This can be sent by a server that is not configured to produce responses for the combination of scheme and authority that are included in the request URI.
- 422Unprocessable Entity
WebDAV; The request was well-formed but was unable to be followed due to semantic errors. For example, an XML request body contains well-formed (i.e., syntactically correct), but semantically erroneous, XML instructions.
- 423Locked
WebDAV; The resource that is being accessed is locked. This means the source or destination resource of a method is locked.
- 424Failed Dependency
WebDAV; The request failed because it depended on another request and that request failed (e.g., a PROPPATCH with a PROPFIND that failed).
- 426Upgrade Required
The client should switch to a different protocol such as TLS/1.0, given in the Upgrade header field. The server sends an Upgrade header with this response to indicate the required protocol(s).
- 428Precondition Required
The origin server requires the request to be conditional. Intended to prevent 'the 'lost update' problem, where a client GETs a resource's state, modifies it, and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict.'
- 429Too Many Requests
The user has sent too many requests in a given amount of time ('rate limiting'). The response representations SHOULD include details explaining the condition, and MAY include a Retry-After header indicating how long to wait before making a new request.
- 431Request Header Fields Too Large
The server is unwilling to process the request because its header fields are too large. The request MAY be resubmitted after reducing the size of the request header fields.
- 451Unavailable For Legal Reasons
The server is denying access to the resource as a consequence of a legal demand. This could be a government censorship or a court order.
5xx Server Error
- 500Internal Server Error
A generic error message, given when an unexpected condition was encountered and no more specific message is suitable. This is a 'catch-all' server-side error.
- 501Not Implemented
The server either does not recognize the request method, or it lacks the ability to fulfill the request. Usually this implies future availability (e.g., a new feature of a web service API).
- 502Bad Gateway
The server was acting as a gateway or proxy and received an invalid response from the upstream server it accessed in attempting to fulfill the request.
- 503Service Unavailable
The server is currently unavailable (because it is overloaded or down for maintenance). Generally, this is a temporary state. A Retry-After header might be included to suggest a delay.
- 504Gateway Timeout
The server was acting as a gateway or proxy and did not receive a timely response from the upstream server or some other auxiliary server it needed to access in order to complete the request.
- 505HTTP Version Not Supported
The server does not support the HTTP protocol version used in the request. The response should contain an entity describing why that version is not supported and what other protocols are supported by that server.
- 506Variant Also Negotiates
Transparent content negotiation for the request results in a circular reference. The chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.
- 507Insufficient Storage
WebDAV; The server is unable to store the representation needed to complete the request. This condition is considered to be temporary.
- 508Loop Detected
WebDAV; The server detected an infinite loop while processing the request (sent in lieu of 208 Already Reported). This indicates that the entire operation failed.
- 510Not Extended
Further extensions to the request are required for the server to fulfill it. The request requires a mandatory extension that is not supported by the server.
- 511Network Authentication Required
The client needs to authenticate to gain network access. Intended for use by intercepting proxies used to control access to the network (e.g., 'captive portals' used to require agreement to Terms of Service before granting full Internet access via a Wi-Fi hotspot).
Frequently Asked Questions about HTTP Status Codes
What are HTTP status codes?
HTTP status codes are three-digit server responses to a browser's request. They indicate whether a specific HTTP request has been successfully completed, if it needs further action, or if an error occurred.
Why are HTTP status codes important?
They are crucial for diagnosing website issues, understanding server responses, and ensuring a smooth user experience. They also play a vital role in SEO by telling search engines how to treat a page (e.g., if it's moved or gone).
How many categories of HTTP status codes are there?
HTTP status codes are grouped into five classes: 1xx (Informational), 2xx (Success), 3xx (Redirection), 4xx (Client Errors), and 5xx (Server Errors). Each class represents a different type of server response.
What is the difference between 4xx and 5xx errors?
4xx errors (e.g., 404 Not Found) indicate a problem with the client's request, meaning the server thinks the client made a mistake. 5xx errors (e.g., 500 Internal Server Error) mean the server failed to fulfill a seemingly valid request due to an issue on its end.
Which HTTP status code is best for SEO when a page moves permanently?
A 301 Moved Permanently redirect is the best HTTP status code for SEO when a page's URL has changed permanently. It tells search engines to transfer all link equity and ranking signals to the new URL.
What does a 404 error mean and how to fix it?
A 404 Not Found error means the server couldn't find the requested resource (e.g., a webpage). To fix it, ensure the URL is correct, or if you're a webmaster, restore the missing page or set up a 301 redirect to a relevant page.
Related Tools
- ASCII Converter
- Case Converter
- Cron Expression Generator
- Random Data Generator
- GeoJSON Viewer
- JavaScript Beautifier
- JSON Diff Checker
- JSON ↔ XML Converter
- Lorem Ipsum Generator
- Markdown Editor (Live Preview)
- Regex Tester & Generator
- sketch
- Text Statistics
- LLM Token Counter
- Unicode Converter
- URL Parser
- Word Counter & Reading Time