A Faster Internet: On HTTP/2

Great news for those who love the internet  (if you don’t you might be in the wrong place): web-surfing is set to get faster, thanks to the implementation of HTTP/2.

So what is HTTP, how does it work, and how does its newest version improve web-surfing?

HTTP stands for 'hypertext transfer protocol'. Think of the protocol as a set of rules defining how your web browser requests data from a remote server, then displays that information as a web page on your monitor.

HTTP was originally developed in the late 1980s by Tim Berners-Lee, and is fundamental to how the internet works. 

It was substantially updated in 1999 to HTTP/1.1, based on the increased demands of the internet of the time. However, that was sixteen years ago. People were worried about things like Y2K, and whether the US president would be impeached. 

Web pages were almost laughably small and simple by today’s standard. There was no YouTube, or Facebook. Online videos were postage stamp sized slideshows. Even five years ago the average webpage was less than half the size it is today. We were long overdue for an upgrade.

HTTP/2 is based on the SPDY protocol developed a few years ago by Google, with a view to optimising performance for today’s rich-media content pages. (Google is phasing out SPDY in favour of HTTP/2.)

HTTP/1.1 can only make one data request at a time, which leads to queueing and congestion. This constant back-and-forth results in heavy duplication of data, further increasing congestion.

HTTP/2 on the other hand uses multiplexing over a single connection, which allows for multiple requests to be sent simultaneously and for the connection to remain open longer without eating up network resources.

This in turns allows for Server Push, which means that when you connect to a webpage, the website will push most of the needed data out to you straight away, rather than via a badly prioritised queue. Whole pages will load into your browser cache much faster. HTTP/2 also better optimises certain kinds of data depending on the site. For example, YouTube pages will prioritise video.

HTTP/2 also features enhanced header compression. The header is basically the information about the site - the metadata - which has to be negotiated first. Headers these days are far more comprehensive (and larger) than they were 15 years ago.

Furthermore, HTTP/2 is (theoretically) more secure than its predecessor, since using an encryption layer won’t degrade performance as much. Google and Mozilla have in fact stipulated that on their new browsers HTTP/2 will only operate over an encrypted connection. Microsoft might go that route as well in its next Internet Explorer release.

So how big a performance improvement will it provide? So far the increase is roughly 20%, though this was obtained on un-optimised sites. Best estimates is that it will eventually improve load times by about 30%, once more of the internet has upgraded itself. Bear in mind that this will take some time, since most sites are optimised for HTTP/1.1, and changing is not a small undertaking.

If anything, the improvement will be more dramatic on mobile devices. HTTP/1.1 was implemented before mobile data was even a thing, while HTTP/2 was designed with such devices in mind. Header compression is probably the biggest help here.

To see best results, both your browser and the page you’re visiting need to be using HTTP/2. The latest versions of all major browsers all support HTTP/2. But what if the site you’re visiting doesn’t use the new protocol? Not to worry, it’s entirely backwards compatible. It’ll just load the page at the old, slower speed.

In other words, to enjoy the advantages of HTTP/2, you don’t have to do much beyond making sure your browser is up to date. This is free, and at most requires a few clicks. Tech enthusiasts pay hundreds, if not thousands, of dollars to obtain considerably smaller improvements. 

More information can be found on the FAQ maintained by the IETF's HTTP Working Group.