What is HTTP?
HTTP stands for Hypertext Transfer Protocol and is the way in which data is sent over the Internet. It is an application protocol that sets the rules for how user agents, such as Google Chrome or Safari, can communicate with a server to request content, like a website.
What is HTTP/2?
HTTP/2 is the latest iteration of HTTP. So far we've had HTTP/0.9, HTTP/1, HTTP/1.1, SPDY/2 and now HTTP/2. The adoption of SPDY/2 was relatively limited and so up until now, the majority of the Internet has been running on HTTP/1.1. HTTP/1.1 was last updated in 1999 and the Internet has changed a lot over the past 17 years, moving from static desktop websites to dynamic media like Netflix and Facebook running on a myriad of devices.
In line with these changes, the way that content is sent to devices needs to be updated too. The new HTTP protocol focuses on improving speed and minimising resource use as well as correcting a lot of the underlying issues present in HTTP/1.1. For end users this means a faster web experience that uses up less of their broadband or 3/4G.
What is the benefit of HTTP/2 compared to HTTP/1.1?
The main improvement HTTP/2 brings to HTTP is that it allows multiple pieces of information to be sent simultaneously from a server to a browser whilst only requiring a single connection - this is referred to as multiplexing.
Something similar already exists with HTTP/1.1, known as “pipelining”, however the browser opens a number of concurrent connections to download the files. In some cases this can lead to up to 30 individual connections to download one individual HTML page and is therefore an inefficient approach to delivering content. HTTP/2 removes this obstacle making the transfer much faster and smoother.
In addition to this, HTTP/2 allows the compression of everything that is sent from the server to the browser. Previous versions of HTTP allow the actual content to be compressed but the accompanying header information that comes with files is not, wasting precious resources.
Finally, HTTP/2 also allows servers to proactively 'push' resources to a browser instead of waiting for them to be requested as part of the process of loading content. Although this won’t reduce the actual amount of content being sent, the more efficient transfer process will enhance the user experience as the browser will receive files, and load them, in a prioritised manner.
As opposed to being a complete rewrite of HTTP, these changes are an update to the way that data is sent "on the wire", meaning the connection between the server and client. Due to this not being a complete rewrite, those users still on devices only capable of handling HTTP/1.1 will have no problem requesting content from servers enabled with HTTP/2, as the server will just downgrade its communication for that client.
How do I switch to HTTP/2?
Upgrading to HTTP/2 is straightforward. Simply update the software on your server and enable the feature. One area to be wary of is the interaction of your existing website with HTTP/2. For the 17 years that HTTP/1.1 has been the main application protocol, website development has compensated with techniques and hacks to work around its limitations. Some of these work arounds can actually be detrimental to your performance over HTTP/2. As a result it's important to audit your website and look out for techniques like:
The above techniques are redundant and so should be removed, with the website being re-optimised for HTTP/2.0 by your development team.
When should I switch to HTTP/2?
Once you’ve done all the planning, groundwork and testing then you're fine to go straight ahead with the switch. HTTP/2 is currently live and you'll most likely have encountered it yourself whilst browsing without even realising.
If you’re looking for a middle ground to prove the value of HTTP/2 before committing to a full launch then consider serving static resources over a content delivery network (CDN) using HTTP/2. This will enable you to prove the speed benefits without having to commit to a large-scale project just yet.
If there are any questions regarding HTTP/2 or getting your website ready then please get in touch with iProspect.