Skip to content

HTTP Status Codes ​

An HTTP Status-Code is a three-digit number that a server generates in response to a browser’s request.

Status-Code 404 is a relatively common Status-Code, which is returned when the server couldn’t find the resource (such as the webpage) that you had just requested.

Each and every time you visit a website, there is a conversation between the servers, and your browser or server sends a request to the site’s server, and in response the site’s server responds with an HTTP Status-Code.

There are six different HTTP Status-Code categories (or classes), and each one represents a different response. The first digit indicates the code category, while subsequent numbers identify the response within that category. A Reason-Phrase follows the code in explanation.

  • 1XX — Informational code: This category is temporary and for information only. The server has received and acknowledges the request, and it is being processed.
  • 2XX — Success codes: This status code category encompasses successful responses, indicating that the action requested by the client was received, understood, and accepted.
  • 3XX — Redirection codes: The server received the request, but there’s a redirect to a different site in place because the resource is in a different location. Sometimes, there will be an additional action to perform, rather than a redirect.
  • 4XX — Client error codes: This category indicates that the server couldn’t find or reach the page or website required due to an error on the site’s side.
  • ·5XX — Server error codes: A valid request was made, but for some reason the request could not be fulfilled. This category includes errors on the server side. They can be detrimental to your SEO, as search engines can prompt crawlers to slow down with crawling and remove indexed URLs that continually return these errors.
  • 6XX - Multi-sided error codes: Status-Codes that apply on both client side and server side.

The main codes are listed below.

Status-Codes ​

Status-CodeReason-PhraseDescription
100ContinueThis interim status code means the server received the initial request, and the client should continue.
101Switching protocolsThis code is a response to an Upgrade header field request where the server has been asked to switch protocols, and the server has agreed to do so.
103Early hintsUsed with the Link header and allows the browser to preload some response header resources while the server prepares the final HTTP response.
200OKThis is the standard response for successful HTTP requests. The actual meaning of the response depends on the request method used:
- GET: Resource obtained and the requested entity is contained within the message body.
- HEAD: Headers are included in the response.
- POST or PUT: A resource describing or containing the result of the action sent is contained within the message body.
- TRACE: The message body contains the request message that was received by the server.
201CreatedThe request was successfully completed, and a new resource was created. This is usually the response after POST or PUT requests.
202AcceptedThe request was accepted for processing, but is still in progress. It’s used for cases where another server handles the request or for batch processing. The request might or might not be eventually acted upon, and may be disallowed when processing occurs.
203Non-Authoritative InformationThe data returned isn’t from the origin server, but is a modified version collected from a third party.
204No ContentThe request was successfully processed, but is not returning any content.
205Reset ContentThe server fulfilled the request but asked the user to reset the document view, and is not returning any content.
206Partial ContentThe server is delivering only part of the resource. This response is used when a Range header has been sent to request only part of a resource or to split a download into multiple simultaneous streams.
207Multi-StatusThe Message Body is by default an XML message and can contain multiple separate response codes. This code provides the statuses of these multiple resources, depending on how many sub-requests were made.
208Already ReportedThe members of a DAV:propstat element have already been listed in a preceding part of the multi-status response and won’t be included again.
226IM UsedThe server completed a GET request. And the response indicates one or more instance-manipulation results.
300Multiple ChoicesThe request has more than one possible response. And the user should choose one of them. This code could be used to present multiple video format options, to list files with different filename extensions, or to suggest word-sense disambiguation.
301Moved PermanentlyThis redirect Status-Code indicates the requested resource has been permanently moved to a new URL. This and all future requests should be directed to the given new URL.
302FoundThis code indicates the requested resource has temporarily moved to a new URL.
303See OtherThe response to the request can be found under another URI. The server redirects the user to the requested resource with a GET request at another URL.
304Not ModifiedUsed for caching purposes. The response hasn’t been modified since the version specified by the request headers If-Modified-Since or If-None-Match, so the client can continue to use the same cached version of the requested resource.
305Use ProxyThe requested resource is available only through a proxy, the address for which is provided in the response.
306Switch ProxyNo longer used.
307Temporary RedirectThe requested resource has temporarily moved to a different URL. The only difference to the 302 code is that the user must not change the HTTP method used - for instance a POST request should be repeated using another POST request.
308Permanent RedirectThe requested resource permanently moved to a different URL. The difference between this code and 301 is the user must not change the HTTP request method.
400Bad RequestThe server can’t or won’t process the request due to an apparent client error, such as invalid request message framing, deceptive request routing, or size too large.
401UnauthorisedThe authentication credentials are not valid to get the requested resource. Similar to 403 Forbidden.
402Payment RequiredReserved for future use; it was initially intended for digital payment systems. It’s very rarely used, and no standard convention regulates it.
403ForbiddenThe request contained valid data and was understood by the server, but the server is refusing action. There are no access rights to the content. For example, it may require a password, or a prohibited action is being attempted. Unlike the 401 HTTP error code, the server does know the client’s identity.
404Not FoundThe server can’t find the requested resource, and no redirection has been set.
405Method Not AllowedThe server supports the request method, but the target resource doesn’t. Such as a GET request on a form that requires data to be presented via a POST, or a PUT request on a read-only resource.
406Not AcceptableThe server doesn’t find any content that satisfies the criteria given by the request, according to the Accept headers sent in the request.
407Proxy Authentication RequiredThis is similar to a 401, but a proxy must authenticate the client to continue.
408Request TimeoutThe server timed out waiting for the request because the client didn’t produce a request within the allotted time.
409ConflictThe server can’t fulfill the request because there’s a conflict with the resource. Information will be displayed about the problem so the client can fix it and resubmit.
410GoneThe resource requested was previously in use but is no longer available and will not be available again. It has been permanently deleted from the server and will not be reinstated.
411Length RequiredThe server rejects the request because it requires a defined Content-Length header field which has not been supplied.
412Precondition FailedThe request indicates preconditions in the header fields that the server fails to meet.
413Content Too LargeThe client’s request is larger than the server’s defined limits, and the server refuses or is unable to process it.
414URI Too LongThe URI requested by the client is 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.
415Unsupported Media TypeThe request entity uses a media format the server does not support.
416Range Not SatisfiableThe request asks for a portion of the file but the server cannot supply that portion. The server can’t fulfill the value indicated in the request’s Range header field.
417Expectation FailedThe server can’t meet the requirements indicated by the Expect request header field.
418I’m A TeapotCreated as an April Fool joke code, it is not expected to be implemented by actual HTTP servers. Although sometimes this Status-Code is also used as a response to a blocked request, instead of the more appropriate 403 Forbidden.
421Misdirected RequestThe request was sent to a server that is unable to produce a response.
422Unprocessable ContentThe request was correctly sent, but the server can’t process it because of semantic errors or similar issues.
423LockedThe requested method’s resource is locked and inaccessible.
424Failed DependencyThe request failed because it depended on another request, and that request failed.
425Too EarlyThe server is unwilling to process a request that might be replayed.
426Upgrade RequiredThe server refuses to process the request using the current protocol, unless the client upgrades to a different protocol.
428Precondition RequiredThe original server needs the request to be conditional 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 RequestsToo many requests are being sent in a given amount of time.
431Request Header Fields Too LargeThe server is unwilling to process the request because either an individual header field is too big, or all the header fields collectively are too large.
451Unavailable for Legal ReasonsThe user requests a resource the server can’t legally provide.
500Internal Server ErrorA generic error message. The server has encountered an unexpected error and cannot complete the request.
501Not ImplementedThe server can’t fulfill the request or doesn’t recognize the request method. Usually this implies future availability.
502Bad GatewayThe server acts as a gateway or proxy and gets an invalid response from an inbound upstream server.
503Service UnavailableThe server is unable to process the request. This often occurs when a server is overloaded or down for maintenance. Generally, this is a temporary state.
504Gateway TimeoutThe server was acting as a gateway or proxy and timed out, waiting for a response.
505HTTP Version Not SupportedThe server doesn’t support the HTTP version used in the request.
506Variant Also NegotiatesThe server has an internal configuration error such as a circular reference.
507Insufficient StorageThe server doesn’t have enough storage to process the request successfully.
508Loop DetectedThe server detects an infinite loop while processing the request.
510Not ExtendedFurther extensions to the request are required for the server to fulfil it.
511Network Authentication RequiredThe request entity must be authenticated to access the network. Intended for use by intercepting proxies used to control access to the network. The error should include a link where the user can submit credentials.
604Inaccessible RequestThe request either does not exist, or was recently deleted.
605Not AllowedWhen 403 Forbidden is bypassed, the website owner will give the person this error. This is because 403 is a client side code, while 605 is both client sided and server sided.
644Request Deleted Or ModifiedA request had been modified or deleted, causing this error to occur.