Pages

Saturday, March 14, 2015

HTTP 2 Revoluation


1999: Bill Clinton was President of the United States; MySpace and Napster were founded; and the business world was preparing for the Y2K meltdown. It was also the year that that Hypertext Transfer Protocol 1.1 (http/1.1) was approved. All of us who use the Internet are familiar with http:// as the header to all our web-browsing experiences. It is the protocol that our browsers use to request content from a web server and display the corresponding web page on your screen. Web sites circa 1999 were much simpler in their design and sophistication. Http/1.1 was an evolution of the original http protocol, which was first used in 1991 by one of the pioneers of the Internet: Tim Berners Lee.

It goes without saying that a lot has happened in the intervening 16 years. Our web experiences today revolve around sites that are far more complex and serve much richer content to us; for example, YouTube, Facebook, Twitter. These were all invented after 1999 and have since ushered in a new era of digital content, accessible anywhere on any device. Streaming media, rich newsfeeds, interactive applications now abound on the web. The communication between a browser call and a web site has become exponentially more complex. Our expectations as consumers for lightning-fast responses to our web browsing has increased even faster.

Http/2 is now finally here and will provide a huge boost to browsing speeds. The new protocol is based on Google’s SPDY/2, the company’s effort to overhaul http/1.1, and developed by the Internet Engineering Taskforce (IETF).

So why the change? Well, http/1.1 only allows one pending request per open TCP connection requiring browsers to use multiple TCP connections to send requests to load a given web page. This process uses a lot of bandwidth and adds latencies which is a particularly acute issue in an age of multimedia and mobile browsing.

Http/2 is a binary protocol and is also fully multiplexed allowing browsers to make multiple http request/response messages in parallel with just one open TCP connection. This is the equivalent of being able to ask several questions at one time rather than asking each question serially. Importantly, http/2 also mandates compression to reduce data usage. For the end user, http/2 enables faster browsing, requires less bandwidth and makes secure connectivity easier. For web sites the beauty of the new protocol is that no change is required for returning a response to the http/2 request.

We are living in a world where 2.5 exabytes of data are created every day from connected devices.[1] Web pages that load faster and are more secure, up to 40 percent faster, are important for the future of every industry, including Visa’s. Today, 80 percent of payment transactions happen face-to-face, but that ratio is changing every day as more people browse and shop on their PC, tablet and, most importantly, smartphone. Growth of mobile commerce, for example, is three times that of offline commerce so new and better web experiences, including http/2 are well worth celebrating.

So the obvious question is: How do I enable http/2? The latest versions of Chrome and Firefox 36 currently support http/2, while Internet Explorer 11 will support it in the upcoming Windows 10 beta. To enable http/2 on Chrome, use Google Chrome Canary and/or go to chrome://flags/#enable-spdy4 to enable SPDY/4 (Chrome's name for http/2). To enable http/2 on Firefox, use Firefox Nightly or go to about:config and enable "network.http.spdy.enabled.http2".

What is perhaps most surprising about the new protocol is how little attention it has generated. Beyond the research papers I follow and some technology news sites, very little has been written about http/2, despite its significance. What are your thoughts on http/2 and its role in our increasingly connected, multimedia world?