All web traffic over the internet uses the well-known HTTP protocol. What you may not know is that there have actually been multiple versions of the HTTP protocol published and used across the internet. The first published version was HTTP V0.9 and was released in 1991, version 1.0 was released in 1996 and replaced in 1997 with HTTP/1.1.
HTTP/1.1 has been the standard web communications protocol since then. Even though the protocol has seen a number of revisions and clarifications that have obsoleted previous versions, the name HTTP/1.1 has been used. The most recent revisions were made in 2014.
HTTP/2 was published in 2015 and was designed to be offered alongside rather than to replace the previous HTTP/1.1 standard. It is based on the SPDY (pronounced “speedy”) protocol developed by Google and is designed to maintain as much compatibility with HTTP/1.1 as possible, such as with error codes and request methods.
The HTTP/2 protocol is also designed to increase the speed at which webpages load through a range of efficiency improvements. By not replacing HTTP/1.1, older devices that don’t support HTTP/2 can still function while those that do support the newer protocol can receive the benefits.
One of the big changes in HTTP/2 is that all resources on a page can be requested and returned in a single connection. Previously in HTTP/1.1 the web browser had to open a new connection for each resource being requested and then close it. This leads to a lot of extra overhead, especially if a page has tens or even hundreds of resources, slowing down page load times. By requesting all resources in one connection, the browser only has to negotiate a single connection to the webserver, reducing the transmission overhead and resource load.
Tip: A web resource is any file used in the display of a webpage. For example, this includes the HTML code, images, styling information, and scripts.
Another improvement in HTTP/2 is that web requests are now “pipelined”, this allows multiple requests to be sent before any replies have been received. Previously in HTTP/1.1, each request had to be made in order, meaning that time was spent waiting for a response to the previous request to request the next resource, delaying the page load time.
Implementation in browsers
All modern browsers support HTTP/2. Unfortunately, the implementation rate on websites is less universal. Nevertheless, users can get the benefits of HTTP/2 on those websites that have been configured to use it.
While the HTTP/2 protocol itself doesn’t require the use of encryption, all browser implementations of it do. As such the HTTP/2 protocol can only be used over HTTPS connections.