HTTP status codes, also known as browser error codes or internet error codes, indicate whether a particular HTTP request is successful or not.
Whenever you try to access a specific website and enter its URL in your browser, the browser sends your request to the web server of that website. Upon receiving the request, the web server processes it and returns the response with an HTTP header.
This HTTP header consists of the HTTP status codes. Every time your browser makes a request for a web page or resource to the web server, you receive the HTTP status codes; however, you do not notice them most times. You usually notice them when something goes wrong and doesn’t find what you requested.
Let us explore more about HTTP status codes in this article.
What are HTTP Status Codes?
HTTP status codes are the response codes the web server sends as a response to a web browser when it requests the desired resource. When the requested resource (web page) does not load properly in a browser, these codes help you identify the major cause.
An alternate term for the HTTP status code is the HTTP status line. Primarily, the HTTP status line consists of a code and the corresponding reason phrase.
For instance, the HTTP status line: 404: Bad Request consists of the HTTP status code: 400 and the HTTP reason phrase: Bad Request.
Types of HTTP Status Codes
HTTP response codes are categorized into the following five groups:
- 100: Informational Responses
- 200: Successful Responses
- 300: Redirection Responses
- 400: Client-Error Responses
- 500: Server-Error Responses
I shall explain all these groups in detail below.
100: Informational Responses
This group of status codes indicates that the request from the client to the server is still in progress. 100-level status codes do not necessarily have to be errors; they provide additional information to help you know what exactly is going on.
|100-level HTTP Status Codes
|It indicates that the web server has received only a part of the request. The client can continue to send the request, as the web server has not rejected it.
|101 Switching Protocols
|The web server changes the protocol as requested by the browser.
|The code indicates that the server is processing the request from the client, but the response is not yet ready.
|103: Early Hints
|It returns some response headers before the server sends a complete response.
200: Successful Responses
The 200-level HTTP response codes indicate that everything is functioning as intended, i.e., the client receives the expected response.
|200-level HTTP Status Codes
|It indicates that a certain HTTP request is successful.
|The web server has fulfilled the browser’s request and hence, has created a new resource.
|It specifies that the web server has accepted the browser’s request for processing. The server is still processing the request and has not completed it.
|203 Non-Authoritative Information
|When there is a use of a proxy server, it receives the response code 200: OK from the origin server. However, it sends the modified version of the original response to the browser.
|204 No Content
|The code indicates that the web server has processed the request successfully but is not going to return any content.
|205 Reset Content
|The web server asks the browser to reset the document view while it has processed the request successfully but is not returning any content.
|206 Partial Content
|This status code leverages range headers that allow you to resume your paused downloads or split a download into multiple streams. The server sends only the part of the response because the client has sent range headers.
300: Redirection Responses
Basically, redirection is the process of conveying that the resource has been located from its original place to a new one. Redirection responses provide clients with information about the location where they can find the requested content.
|300-level HTTP Status Codes
|300 Multiple Choices
|Many times the web server provides multiple resources to a browser’s requests. As a result, the browser can choose from multiple options available.
|301 Moved Permanently
|It indicates that the current and all further requests should be redirected to the given URI, as the resource has been located permanently.
|The browser finds the requested resource but not at the intended location. It indicates the temporary URL redirection.
|303 See Other
|This code indicates that it has found the resource your browser requested via POST, DELETE, or PUT methods. You can retrieve the resource by making a request using the GET method to a different URI (different from the one used before).
|304 Not Modified
|It specifies that the resource stored in your browser’s cache is not modified since you accessed it for the last time.
|305 Use Proxy
|The browser can access the resource only through a proxy whose address is received in a response from the server.
|306 Switch Proxy
|All the subsequent requests should use a different proxy.
|307 Temporary Redirect
|The web server sends this response code to the client, stating that they can find the requested resource at a different URL but using the same method as used in the previous request.
|308 Permanent Redirect
|This indicates that the resource has been permanently moved to a different URI.
400: Client-Error Responses
The 400-level status codes are codes that specify something is wrong on the error client side, i.e., there is an issue with the browser or the request.
|400-level HTTP Status Codes
|400 Bad Request
|The server will not return the response due to a client error, such as the invalid syntax of the request, size too large,
|The client has to authenticate themselves to receive the request-response.
|402 Payment Reminder
|Initially, the code was created to use in digital payment systems. But this never happened, and hence the is not used widely.
|The web server refuses to provide the requested resource because the client does not have access rights.
|404 Not Found
|It indicates that the server does not find the requested resource.
|405 Method Not Allowed
|This code specifies that the requested resource does not support the request method.
|406 Not Acceptable
|It states that the requested resource only generates content that is not acceptable by the accept header in the request.
|407 Proxy Authentication Required
|The client should authenticate themselves with the proxy first.
|408 Request Timeout
|It specifies that the client did not make any request within the time the server was prepared to wait.
|Due to the conflict in the current state of the resource, the server could not process the client’s request.
|Similar to 404: Not Found. Also, 410: Gone specifies that the condition is permanent and expected.
|411 Length Required
|The client has not specified the length of the content required by the requested resource.
|412 Precondition Failed
|The server did not satisfy any of the pre-conditions the client imposed on the request headers.
|413 Payload Too Large
|The request is larger than the server is capable of processing it.
|414 URI Too Long
|The length of the URI is larger for the server to process.
|415 Unsupported Media Type
|The request has a media type that the server or resource does not support.
|416 Range Not Satisfiable
|It specifies that the request was the portion of a resource that the server was not able to return.
|417 Expectation Failed
|The server is not capable of fulfilling the needs of the Expect request-header field.
|418 I’m a Teapot
|Teapots return this code when they receive the request for brewed coffee.
- How to Fix HTTP Error 429 Too Many Requests
- How to Fix HTTP Error 431 Request Header Fields Too Large
500: Server-Error Responses
Like 400-level status codes, 500-level codes are also errors but on the server side. These codes define the issues on the server side and are pretty tricky to resolve.
|500-level HTTP Status Codes
|500 Internal Server Error
|This indicates that something is wrong with the server, and the requested resource is not delivered to the client.
|501 Not Implemented
|The server either does not identify the request method or has no ability to fulfill the request.
|502 Bad Gateway
|When the server acts as a gateway or proxy, it receives an invalid response from the upstream server.
|503 Service Unavailable
|The server is not able to handle the request as it is down for maintenance or overloaded.
|504 Gateway Timeout
|The server was acting as a gateway or proxy and has not received the response in time from the upstream server.
|505 HTTP Version Not Supported
|The server is not compatible with the HTTP version used in the request.
|506 Variant Also Negotiates
|A circular reference is produced via transparent content negotiation for the request.
|507 Insufficient Storage
|There is no sufficient storage on the server to store the representation required to fulfill the request.
|508 Loop Detected
|The server detected the infinite loop while processing the request.
|510 Not Extended
|In order to fulfill the request, the server requires further extensions to the request.
|511 Network Authentication Required
|It specifies the need for client authentication so that the client can access the network.
To Sum It Up: HTTP Status Codes
This was all about the HTTP status codes and different types. These status codes are actually informative though they seem intimidating. When you learn some of the major HTTP response codes, you can easily troubleshoot problems on your website. I hope you will find this article helpful in identifying which status code you receive when you request information on the internet.