Evolution Of HTTP Over the years
Tags: web, protocol, http
Published: 2022-06-29 16:31:08


The first line of an HTTP request is called the request line, and consists of three parts: the method, the URI, and the HTTP version. The method is the action that the client wants to perform on the resource, such as GET or POST. The URI is the location of the resource on the server. The HTTP version is the version of the HTTP protocol that the client is using.
The status code is a 3digit code that indicates whether or not the request was successful. A 200 status code means that the request was successful, while a 404 status code means that the resource could not be found.

The header fields follow the status line in an HTTP response. Header fields contain information about the response, such as its content type or length. The body of an HTTP response contains the actual data that was requested by the client.
HTTP is a simple but powerful protocol that forms the foundation of much of what we do on the internet today. By understanding how it works, we can make our web applications more efficient and resilient.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/elalqjorlp7d1vev2f1s.png)
 

## HTTP Protocol Version 0.9
 Also named the one line protocol, it was the first version of the HTTP protocol, and is not capable of supporting the modern web.This version support only GET method.
The response was consisted to return the file itself.

##HTTP Protocol Version 1.0

HTTP Protocol Version 1.0 was released in 1996, and is now obsolete.
HTTP 1.0 introduces a number of new features, including the ability to connect to multiple servers at the same time, support for persistent connections, and support for the POST method.
This version introduce the status code lime at the beginning of the response.
In addition the HTTP headers was introduced for response and request. 
 HTTP Protocol Version 1.0 has been replaced by newer versions of the HTTP protocol, such as HTTP Protocol Version 2.0 and HTTP Protocol Version 3.0.


##HTTP Protocol Version 1.1

Published few months after version 1.0, this version comes with the ability to solve the famous problem of "connection timeouts", where a connection would be closed after a period of inactivity. This could happen, for example, if a user started to download a large file and then stopped in the middle. The new version of the protocol allows for "persistent connections", which remain open even after a period of inactivity. This means that the user can resume their download at any time without having to establish a new connection.

HTTP 1.1 is an important revision to the HTTP protocol that introduces several significant improvements over the previous version. 
These improvements include support for persistent connections, pipelining of requests, and chunked transfer encoding. 
Additionally, the new version introduces a number of new header fields and status codes that provide more information about the status of a request or response.

## HTTP2
Some of the benefits of HTTP/2 include:
Increased speed: By using a multiplexed connection, HTTP/2 allows for parallel requests, so a website can load faster.
Reduced latency: By compressing headers, HTTP/2 reduces the amount of data that needs to be exchanged between the server and the client, resulting in a faster experience for the user.
Improved security: HTTP/2 uses TLS encryption by default, which helps protect against eavesdropping and man-in-the-middle attacks.



In conclusion , HTTP is the protocol that allows communication between a user's browser and a website. There are two main versions of HTTP, 1.0 and 1.1. The main difference between the two is that 1.1 supports persistent connections, meaning that a single connection can be used for multiple requests, which makes it much faster. Additionally, 1.1 supports caching and pipelining, which further improve performance.

In the next article I will talk about HTTP3.0 ;)



Between this you can check our API Solution at [www.blstsecurity.com](https://www.blstsecurity.com/?promo=blst&domain=https://nathan.httphistory).

Join our Discord Server: [https://discord.gg/ajDuTJWD](https://discord.gg/ajDuTJWD).