Introduction:
HTTP, short for Hypertext Transfer Protocol, is the foundation of data communication on the World Wide Web. When you request a webpage, upload a file, or interact with a web application, your browser and the server exchange information using HTTP. One crucial aspect of this communication is the HTTP status code, which provides information about the outcome of a request. In this blog, we will explore the different HTTP status codes and their meanings, helping you gain a deeper understanding of how the web communicates.
1xx: Informational Codes
The 1xx series of HTTP status codes are informational and indicate that the server has received the request and is processing it. These codes are rarely encountered during normal browsing, but they serve specific purposes in certain scenarios.
Message | Description | Long Description |
---|---|---|
100 | Continue | The server has received the request headers, and the client should proceed to send the request body |
101 | Switching Protocols | The requester has asked the server to switch protocols |
103 | Checkpoint | Used in the resumable requests proposal to resume aborted PUT or POST requests |
2xx: Success Codes
The 2xx series signifies that the server successfully processed the request and delivered the desired content. The most common success code is 200 (OK), indicating that the request was successful and the server is returning the requested resource. Other codes in this series include 201 (Created), 204 (No Content), and 206 (Partial Content).
Message | Description | Long Description |
---|---|---|
200 | OK | The request is OK (this is the standard response for successful HTTP requests) |
201 | Created | The request has been fulfilled, and a new resource is created |
202 | Accepted | The request has been accepted for processing, but the processing has not been completed |
203 | Non-Authoritative Information | The request has been successfully processed but is returning information that may be from another source |
204 | No Content | The request has been successfully processed but is not returning any content |
205 | Reset Content | The request has been successfully processed, but is not returning any content, and requires that the requester reset the document view |
206 | Partial Content | The server is delivering only part of the resource due to a range header sent by the client |
3xx: Redirection Codes
The 3xx series informs the browser that the requested resource has been moved or is available at a different location. These codes are used for scenarios such as permanent or temporary redirects. The popular code in this series is 301 (Moved Permanently), which indicates that the requested resource has moved permanently to a new URL. Other codes include 302 (Found), 304 (Not Modified), and 307 (Temporary Redirect).
Message | Description | Long Description |
---|---|---|
300 | Multiple Choices | A link list. The user can select a link and go to that location. Maximum five addresses |
301 | Moved Permanently | The requested page has moved to a new URL |
302 | Found | The requested page has moved temporarily to a new URL |
303 | See Other | The requested page can be found under a different URL |
304 | Not Modified | Indicates the requested page has not been modified since last requested |
306 | Switch Proxy | No longer used |
307 | Temporary Redirect | The requested page has moved temporarily to a new URL |
308 | Resume Incomplete | Used in the resumable requests proposal to resume aborted PUT or POST requests |
4xx: Client Error Codes
The 4xx series indicates that there was an error on the client side. These codes are triggered when the server cannot fulfill the request due to client-related issues, such as invalid URLs, authentication problems, or insufficient permissions. The most common client error code is 404 (Not Found), which occurs when the requested resource is not available on the server. Other codes include 400 (Bad Request), 403 (Forbidden), and 401 (Unauthorized).
Message | Description | Long Description |
---|---|---|
400 | Bad Request | The request cannot be fulfilled due to bad syntax |
401 | Unauthorized | The request was a legal request, but the server is refusing to respond to it. For use when authentication is possible but has failed or not yet been provided |
402 | Payment Required | Reserved for future use |
403 | Forbidden | The request was a legal request, but the server is refusing to respond to it |
404 | Not Found | The requested page could not be found but may be available again in the future |
405 | Method Not Allowed | A request was made of a page using a request method not supported by that page |
406 | Not Acceptable | The server can only generate a response that is not accepted by the client |
407 | Proxy Authentication Required | The client must first authenticate itself with the proxy |
408 | Request Timeout | The server timed out waiting for the request |
409 | Conflict | The request could not be completed because of a conflict in the request |
410 | Gone | The requested page is no longer available |
411 | Length Required | The "Content Length" is not defined. The server will not accept the request without it |
412 | Precondition Failed | The precondition given in the request was evaluated to be false by the server |
413 | Request Entity Too Large | The server will not accept the request, because the request entity is too large |
414 | Request-URI Too Long | The server will not accept the request, because the URL is too long. Occurs when you convert a POST request to a GET request with a long query information |
415 | Unsupported Media Type | The server will not accept the request, because the media type is not supported |
416 | Requested Range Not Satisfiable | The client has asked for a portion of the file, but the server cannot supply that portion |
417 | Expectation Failed | The server cannot meet the requirements of the Expect request header field |
5xx: Server Error Codes
The 5xx series indicates that the server encountered an error while processing the request. Unlike client error codes, server error codes imply that the server failed to fulfill the request due to an issue on its end. The most well-known server error code is 500 (Internal Server Error), indicating a generic server-side problem. Other codes in this series include 503 (Service Unavailable), 502 (Bad Gateway), and 504 (Gateway Timeout).
Message | Description | Long Description |
---|---|---|
500 | Internal Server Error | A generic error message is given when no more specific message is suitable |
501 | Not Implemented | The server either does not recognize the request method, or it lacks the ability to fulfill the request |
502 | Bad Gateway | The server was acting as a gateway or proxy and received an invalid response from the upstream server |
503 | Service Unavailable | The server is currently unavailable (overloaded or down) |
504 | Gateway Timeout | The server was acting as a gateway or proxy and did not receive a timely response from the upstream server |
505 | HTTP Version Not Supported | The server does not support the HTTP protocol version used in the request |
511 | Network Authentication Required | The client needs to authenticate to gain network access |
Conclusion:
HTTP status codes are a vital part of web communication, providing valuable information about the outcome of a request. Understanding these codes enables developers, system administrators, and users to diagnose and resolve issues that arise during web interactions. In this blog, we have covered the major categories of HTTP status codes, including informational, success, redirection, client error, and server error codes. By familiarizing yourself with these codes, you can navigate the web more effectively and troubleshoot any problems that may arise.
Comments (0)