There are five categories (or classes) of HTTP status codes, each indicating a different type of response from the server to the browser:
1XX: Informational codes.
These codes indicate that the server has received the request and is continuing to process it.
2XX: Success codes.
These signify that the request was successfully received, understood, and handled by the server.
3XX: Redirection codes.
The request was received, but the client must take further action—typically a redirection to a different URL.
4XX: Client error codes.
These errors indicate that the request cannot be completed due to an issue from the client side, such as a missing or incorrect page.
5XX: Server error codes.
These mean that while the client’s request was valid, the server encountered an issue and couldn’t fulfill it.
Let’s understand each HTTPS Status Codes and its meaning.
1XX: Informational codes.
These codes are temporary, not visible to the end user, and serve to inform that the server has received the request and is continuing to process it.
100: Continue
Indicates that the initial part of the request has been received and the client can proceed with the rest.
101: Switching Protocols
Sent in response to a client’s request to switch protocols, indicating the protocol the server is switching to.
102: Processing
Signals that the server has received and is actively handling the request, but no response is ready yet.
103: Early Hints
Used with the Link header to suggest resources the browser can preload while the final server response is still being prepared.
2XX: Success codes.
This class of status codes indicates that the request was successfully received, understood, and processed.
200: OK
The standard response for successful HTTP requests. The exact meaning depends on the HTTP method:
GET: The requested resource is included in the response body.
HEAD: Only the headers are returned.
POST or PUT: A representation of the result is included in the response body.
TRACE: The body contains the original request message received by the server.
201: Created
Indicates that the request was successful and led to the creation of a new resource—typically following a POST or PUT operation.
202: Accepted
The request has been accepted for processing but hasn’t been completed yet. It’s often used for asynchronous processing or when another service handles the request.
203: Non-Authoritative Information
The response contains information that didn’t come directly from the origin server but from a third-party source, possibly modified.
204: No Content
The request was completed successfully, but there is no content to return. Response headers may still contain useful metadata.
205: Reset Content
The request was successful, and the client is instructed to reset the document view, such as clearing a form.
206: Partial Content
Indicates that the server is returning only part of the resource, typically in response to a Range header from the client.
207: Multi-Status
Used in WebDAV responses to provide status information for multiple resources involved in a single request.
208: Already Reported
Also used in WebDAV, this indicates that a particular resource has already been reported in a previous response and won’t be included again.
226: IM User
Signifies that the server has completed a GET request, and the response reflects one or more instance manipulations (such as deltas or patches) applied to the current instance.
3XX: Redirection codes.
These status codes indicate that the requested resource resides at a different location, and the client is redirected accordingly.
300: Multiple Choice
The request has several possible responses. The client or user agent should select one of them.
301: Moved Permanently
This code indicates that the resource has been permanently relocated to a new URL. Future requests should use the new URL.
302: Found
Formerly “Moved Temporarily,” this status signals that the resource is temporarily available at a different URL.
303: See Other
The client is redirected to another URL using a GET request to retrieve the desired resource.
304: Not Modified
Primarily used in caching, this status tells the client that the resource hasn’t changed, so it can continue using the cached version.
305: Use Proxy
This code indicates that the requested resource must be accessed through a proxy server specified in the response. However, due to security concerns, it is rarely used and is now deprecated.
306: Switch Proxy
This code is no longer in use. Originally it was meant to signal that future requests should use a different proxy. This code is no longer in active use and remains reserved for potential future implementation.
307: Temporary Redirect
Indicates the resource is temporarily at another location, but unlike 302, the original HTTP method (e.g., POST or GET) must be preserved.
308: Permanent Redirect
Similar to 301, this code denotes a permanent move. However, the client must continue using the same HTTP method as the original request.
4XX: Client error codes.
These codes indicate that the request cannot be processed due to an issue on the client side.
400: Bad Request
The server is unable or unwilling to process the request due to invalid syntax or other client-side errors, such as malformed framing or excessively large payloads.
401: Unauthorized
Authentication is required, and the client has not provided valid credentials for accessing the requested resource.
402: Payment Required
Originally designed for digital payment use cases. It remains reserved for future use and is rarely implemented with no standard usage.
403: Forbidden
The client is recognized but does not have permission to access the resource—often due to access restrictions like missing credentials. Unlike 401, authentication has already occurred.
404: Not Found
The server couldn’t locate the requested resource, and no forwarding or redirection has been set. This is the most common error and may negatively affect SEO.
405: Method Not Allowed
The HTTP method used is recognized but not allowed for the targeted resource.
406: Not Acceptable
The server is unable to provide content that matches the criteria defined in the Accept headers of the request.
407: Proxy Authentication Required
Similar to a 401 error, but the client must authenticate with a proxy server before the request can proceed.
408: Request Timeout
The server timed out waiting for the client to send the request in a timely manner.
409: Conflict
The request could not be completed due to a conflict with the current state of the resource. The server will typically include details so the issue can be resolved and retried.
410: Gone
The requested resource has been permanently removed and is no longer available. Unlike 404, this is intentional and permanent.
411: Length Required
The server requires a Content-Length header and rejected the request because it was missing.
412: Precondition Failed
One or more conditions specified in the request headers were not met by the server.
413: Payload Too Large
The request body is too large for the server to handle and has been rejected.
414: URI Too Long
The URI specified in the request is too long for the server to process, often due to excessive query parameters.
415: Unsupported Media Type
The request uses a media type (e.g., JSON, XML) that the server does not support.
416: Range Not Satisfiable
The value specified in the Range header cannot be fulfilled by the server, likely because it falls outside the size of the resource.
417: Expectation Failed
The server cannot meet the expectations specified in the Expect header of the request.
421: Misdirected Request
The request was sent to a server that cannot respond, usually due to routing issues in multi-tenant environments.
422: Un-processable Entity
The request was well-formed but contains semantic errors that prevent it from being processed.
423: Locked
The targeted resource is currently locked and cannot be accessed or modified.
424: Failed Dependency
The request failed because it depended on another request that did not succeed.
425: Too Early
The server is not willing to process the request as it might be replayed, which can lead to unintended effects.
426: Upgrade Required
The server refuses to fulfill the request using the current protocol unless the client upgrades (e.g., from HTTP/1.1 to HTTP/2).
428: Precondition Required
The server requires the request to include certain conditions to prevent accidental modification of resources.
429: Too Many Requests
The client has sent too many requests in a given time window and has been rate-limited.
431: Request Header Fields Too Large
The server cannot process the request because one or more header fields are too large.
451: Unavailable For Legal Reasons
Access to the requested resource is denied for legal reasons, such as a court order or government censorship.
5XX: Server error codes.
These errors occur when the server fails to fulfill a valid request. Persistent 5XX errors can negatively impact SEO, as search engines may reduce crawl frequency or deindex problematic URLs.
500: Internal Server Error.
The server encountered an unexpected condition that prevented it from completing the request.
501: Not Implemented
The server does not support the functionality required to fulfill the request or does not recognize the request method.
502: Bad Gateway
The server, while acting as a gateway or proxy, received an invalid response from an upstream server.
503: Service Unavailable
The server is currently unable to handle the request, usually due to overload or scheduled maintenance.
504: Gateway Timeout
The server, acting as a gateway or proxy, did not receive a timely response from an upstream server.
505: HTTP Version Not Supported
The server does not support the HTTP protocol version used in the request.
506: Variant Also Negotiates
A configuration error occurred on the server while negotiating content, resulting in a circular reference.
507: Insufficient Storage
The server is unable to store the representation needed to complete the request due to a lack of storage space.
508: Loop Detected
The server identified an infinite loop while processing a request, typically in a WebDAV context.
511: Network Authentication Required
The client must authenticate to gain network access. The response should include a URL or method to provide credentials.
Top comments (1)
Pretty cool finally seeing all these codes explained straight up like this. Actually helps me remember for once.