The Who, What, Where, When, Why of HTTP/2
It is hard to believe that HTTP has been getting used for 25 years and we are now only on the second version; while Chrome has only been in existence for seven years yet is on version 45. This is a first in a series of blog posts designed to give you all the information you need to know about HTTP/2 - what it is, why it matters, what you need to do, if you have to re-design your website and when should you start planning.
What exactly is HTTP/2 ?
HTTP/2 is a replacement for how data is transferred on the web. It maintains all the semantics of HTTP but eliminates the inefficiencies improving performance for end users. The main features of HTTP/2 (which will be covered in detail in the next blog post) include header compression, connection multiplexing, server push, and request prioritization. These features make the protocol less sensitive to round trip times (RTT), resolves pipelining and head of line blocking, and reduces TCP overhead by eliminating the need for multiple connections to a single host.
Why change HTTP?
The internet has continued to evolve over the last 20 years but the standard has not. The timeline below illustrates just a few of the major events in HTTP’s lifetime. There is a huge gap in the evolution of the standard, but during this time frame many key events happened, such as the ability to access the internet from your phone and make a phone call from your computer.
As a result of the increased demands placed on web applications, developers created work arounds such as spriting data, sharding domains, and concatentation to try and improve the performance of their applications, but these workarounds could be time consuming and did not work for all sites. A universal easy solution was needed. In 2009 Google took the first step towards a new solution with the creation of SPDY, which set the ball rolling for the HTTP/2 specification.
For those of you that saw the image of the dancing baby and must see the video again (or for the first time) here it is.
Who was involved in making the change?
In 2012 the Httpbis working group at the IETF was tasked with drafting the new HTTP specification. As SPDY started to gain momentum the Httpbis working group took on the project of drafting a new standard. The working group consists of industry experts and people passionate about HTTP from companies such as Firefox, Microsoft, Chrome, and Twitter.
As the specification progressed through various stages many organizations created implementations to test interoperability and validate functionality. A list of current implementations is available on the HTTP/2 Github site and includes browsers, servers and proxies.
When can I start using HTTP/2?
In May 2015 RFC 7540 was submitted to the IETF as a proposed standard to replace HTTP/1.1 and make the web faster. Browsers and applications have begun to support HTTP/2 in conjunction with HTTP/1.1 and more will be following in the coming months. The chart below from CanIUse shows the current browser support for HTTP/2 as of September 2015 with global browser support at 59% .
Browser support is only half of the equation, your application delivery infrastructure also has to support HTTP/2. This could mean web servers, application delivery controllers or your CDN. While 59% of browsers support HTTP/2 as of September 2015, only 1.2% of web sites use the protocol, according to W3Techs. You might be thinking that 1.2% is a very small percentage, but remember that the standard only became a proposed RFC in May, which means in four short months 1.2% of web sites have implemented the standard, and out of the two most popular servers Nginx released initial support yesterday (September 16) and Apache has not yet released support. Expect to see this number rise rapidly in coming months as the servers, proxies and CDNs that previously implemented SPDY roll out HTTP/2 support.
Instart Logic supports SPDY today and we are currently testing HTTP/2 internally. Production support will be rolling out in coming months, stay tuned for more information on this exciting development. With Nginx releasing initial support, and production support planned for a later date, the other notable HTTP/2 release to look out for is Apache. The Apache module mod_h2 is currently in development and is listed as not hardened enough for production use as of September 2015.
On October 12, 2015 Apache released version 2.4.17 which includes support for HTTP/2.
Where can I find more information?
In the next post I will dig into the technical details of the specification and how it compares/differs from HTTP/1.1
Interested in learning more? Here are a few options:
- Try it on your site by creating an account for our free Starter Edition service
- Talk to one of our specialists about your specific needs