HTTP is the support of everything internet: it is the protocol used by your browser to request and get pages from the internet. It is widely used and is one of the foundations of the internet.
HTTP/1.1 is getting old
Currently, most websites use HTTP in version 1.1. Problem: this version, adopted as a standard since 1999, is too old and not efficient enough to support modern web applications.
Because web applications have changed a lot since: a page is composed of multiple elements (content, images, stylesheets, scripts) that have to be loaded separately.
This is currently a problem. In current case, the browser must, for each resource, connect to the source server, ask for the resource, and get it. Again and again. Wasting time and bandwidth. Things like `Keep-Alive` are able to composate the problem a little, but they are just workarounds above the HTTP layer.
SPDY at the rescue
Google already worked on this problem. 2011 Google presented SPDY, their protocol to address issues present in HTTP. The main goal of SPDY is to enhance speed and reduce network overhead.
SPDY implements some advanced features in this goal:
- Pipelining, which permits to transmit multiple streams over a single connection, and thus reducing transfer overhead,
- Header compression, reducing the size needed to transmit the connection header,
- Server push, which allows the server to respond to a single document with multiple documents, like page assets, to suppress the delay that would be added by the additionnel request the client would make.
The new protocol tested promised speedups from 25% to 60%.
Since then, Google published 4 revisions of the protocol. Modern web browser support vary depending on the protocol version, but all vendors began implementing it. Server sides, the SPDY support only rised to 2.3% of websites.
Birth of HTTP/2.0
HTTP/2.0 (later renamed simply HTTP/2) is born to replace the legacy protocol HTTP/1.1 and standardization of SPDY. The standard started upon the enhancements proposed by SPDY. Some ideas were changed for HTTP/2.0, but most of the new things stayed there.
HTTP/2 is a new take on HTTP, meaning that legacy web applications are not going to stop working following the adoption of this new protocol. These applications will continue to work as before; therefore, new applications may include HTTP/2 improvements to become more efficient.
HTTP/2 draft was approved early 2015. Google already announced that it will be soon supported on its browser, and in medium term SPDY will be definitely removed. Other browsers already announced their plan to support the new protocol.
Websites are the next ones to implement this. This will take longer, as they may need adaptation to use new features, and current servers are not all ready to accept this. But the work is ongoing, and we should see soon the first applications using this new protocol.
We already work in our laboratory on this next evolution for provide to our customers the latest software and technology for optimize their website.