The Internet is characterized by being in constant development, especially as a consequence of its advanced technologies, the dizzying creation of new content, and the growing demand by users. Websites created several years ago today face perfectly adapted websites for the visitor, optimized for different devices and with a strong online presence. Access times and data transfer play a crucial role in the correct display and operation of this type of web page. The HTTP / 2 protocol is a perfect example of this constant development, which aims to significantly reduce the loading times of the hitherto used HTTP / 1.1.

What is HTTP?

To access a web page, it is necessary to implement different network protocols that, organized in various application layers, are in charge of regulating the delivery and transfer of data. One of the protocols at the top application layer is the Hypertext Transfer Protocol (HTTP). This transfer protocol sends the web hypertext to the browser so that it converts it into text, images, or videos, communicating the browsers with the web servers where the different web pages are hosted.

HTTP / 2 development

In 2009 Google introduced SPDY, an alternative to HTTP / 1.1. The biggest criticism of the then old HTTP version is still that the transmission protocol represents an unnecessary brake for complex web pages: with HTTP / 1.1, it is necessary to establish a new TCP / IP connection for each file, for example. With the creation of SPDY, Google solved this problem by multiplexing transfers, with which any number of documents can be sent through a TCP / IP connection. In 2012, with a design based on the SPDY protocol created by Google, the Internet Engineering Task Force (IETF) started working on the HTTP / 2 protocol. However, Google’s protocol had such security deficiencies and vulnerabilities that the large number of changes that had to be made led to HTTP / 2 not nearly resembling its predecessor.

These are the characteristics of HTTP / 2

A characteristic feature of this protocol, mentioned above, is that in order to transfer the different elements of a web page to a client/browser, such as JavaScript, CSS or image files, it was necessary to open and close separate TCP / IP connections. For its part, HTTP / 2 allows multiplexing, which allows us to fully load a web page using a single connection. In addition, it offers the server the possibility of transferring data to the client without requesting it (Server Push).

With HTTP / 2, the web component packages are sent as a priority, sending first, for example, those elements responsible for the web design. Compared to HTTP / 1.1, the Header HTTP2 compresses and sends omitting all superfluous information. Another innovation is the use of binary code for communication (instead of text files), making it easier and less error-prone.