When we journey through the web, each click and query ignites a digital conversation between our browser and a web server. This dialogue happens in a language called HTTP (Hypertext Transfer Protocol), and its responses – the server’s side of the conversation – are often something we overlook. That is, until something doesn’t go as planned. Suddenly, we’re faced with HTTP error codes that can seem like indecipherable technical jargon.
There are 63 defined HTTP status codes, as recognized by the Internet Assigned Numbers Authority (IANA), each indicating a different kind of response from the server. These can range from the delightful 200 OK, letting us know our request was successful, to the disheartening 404 Not Found, indicating that the requested resource could not be found on the server.
In this article, we’re going to break down the most common HTTP error codes, adding a little clarity to these often cryptic messages. Understanding these codes will help you navigate your digital journey and troubleshoot any bumps along the way. So, buckle up as we journey through the HTTP highways and byways, exploring the signposts that help us understand the complex conversation between our browser and the servers it communicates with.
List of HTTP Error Codes
Status Code | Description |
---|---|
100 Continue | Your request was received, and the process is continuing. |
101 Switching Protocols | Your request for a protocol switch was granted. |
200 OK | Your request was successful! Nice job. |
201 Created | Your request was successful and a resource was created as a result. |
202 Accepted | Your request was received, but it hasn’t been acted on yet. |
203 Non-Authoritative Information | The info in the entity header isn’t from the original server, but from a third party. |
204 No Content | Your request was successful, but there’s no representation to return (that is, the response is empty). |
205 Reset Content | Your request was successful, but no content was returned and the requester must reset the document view. |
206 Partial Content | Only part of the resource was sent with the request. |
300 Multiple Choices | The request has more than one possible response. The user-agent or user should choose one of them. |
301 Moved Permanently | The resource you’re looking for is no longer here; it’s permanently located at a new URI. |
302 Found | The resource you’re looking for is temporarily located at a new URI. |
303 See Other | The response can be found at another URI and should be retrieved using a GET method. |
304 Not Modified | There’s no need to retransmit the resource since the client hasn’t modified since the version specified by the request headers. |
305 Use Proxy | The client must access the resource through a proxy specified in the location header. |
307 Temporary Redirect | The resource is temporarily at another URI; the client should continue to use the original URI. |
400 Bad Request | Your request couldn’t be understood, sorry. Try changing your syntax or parameters. |
401 Unauthorized | You need to authenticate before getting response. |
402 Payment Required | This code is reserved for future use. |
403 Forbidden | You don’t have permission to access this resource. |
404 Not Found | The requested resource couldn’t be found. Like a ghost! |
405 Method Not Allowed | The method you’re trying to use isn’t allowed on this resource. |
406 Not Acceptable | The resource can only generate a response that’s not accepted by the client. |
407 Proxy Authentication Required | You must authenticate with a proxy server before this request can be served. |
408 Request Timeout | The server gave up waiting for your request. |
409 Conflict | Your request conflicts with the current state of the server. |
410 Gone | The resource you’re looking for was once here, but not anymore. And it’s not coming back. |
411 Length Required | Your request is missing a Content-Length header. |
412 Precondition Failed | One or more preconditions you sent in the request header evaluated to false. |
413 Payload Too Large | Your POST request is too large for the server to handle. |
414 URI Too Long | The URI you’ve requested is longer than the server can interpret. |
415 Unsupported Media Type | The media type you’re requesting isn’t supported by the server. |
416 Range Not Satisfiable | The range you’re requesting isn’t available. |
417 Expectation Failed | The server can’t meet the requirements of the Expect request-header field. |
418 I’m a teapot | An April Fools’ joke, not used in real communications. |
422 Unprocessable Entity | The server understands your content type, and the syntax of your request is correct, but it still couldn’t process the contained instructions. |
423 Locked | The resource that you’re trying to access is locked. |
424 Failed Dependency | The request failed due to the failure of a previous request. |
426 Upgrade Required | The client should switch to a different protocol. |
428 Precondition Required | The origin server requires the request to be conditional. |
429 Too Many Requests | You’ve sent too many requests in a given amount of time. |
431 Request Header Fields Too Large | One or more of your request header fields is too large. |
451 Unavailable For Legal Reasons | The resource you’re trying to access is unavailable for legal reasons. |
500 Internal Server Error | The server encountered an unexpected condition that prevented it from fulfilling the request. |
501 Not Implemented | The server does not support the functionality required to fulfill the request. |
502 Bad Gateway | The server received an invalid response from the upstream server while trying to fulfill the request. |
503 Service Unavailable | The server is currently unable to handle the request due to being overloaded or down for maintenance. |
504 Gateway Timeout | The upstream server failed to send a request in the time allowed by the server. |
505 HTTP Version Not Supported | The server doesn’t support the HTTP protocol version used in the request. |
506 Variant Also Negotiates | Transparent content negotiation for the request results in a circular reference. |
507 Insufficient Storage | The server is unable to store the representation needed to complete the request. |
508 Loop Detected | The server detected an infinite loop while processing a request with “Depth: infinity”. |
510 Not Extended | Further extensions are needed to fulfill the request. |
511 Network Authentication Required | The client needs to authenticate to gain network access. |
Additional error codes
Status Code | Description |
---|---|
102 Processing | The server has received and is processing the request, but no response is available yet. |
207 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. |
226 IM 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. |
308 Permanent 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. |
451 Unavailable For Legal Reasons | The user-agent requested a resource that cannot legally be provided, such as a web page censored by a government. |
Please note that these codes may not be used as often as the others, and their implementation may depend on the server or client software. Also, the 102 and 207 status codes are defined in WebDAV, an extension of HTTP.