How CloudFlare is accelerating the web with HTTP/2
CloudFlare, just added another tool to its toolbelt. The content delivery network, which provides free acceleration services for websites as well as paid tiers for business and enterprise users, has added support for HTTP/2, an update to the HTTP standard, with a focus on decreasing latency and page load times.
Why is there a new version of HTTP?
For years, one of the biggest impediments to speedy page loading has been the Hypertext Transport Protocol itself—HTTP 1.1, which was standardized in 1997.
HTTP 1.1 was not designed with this use case in mind—the extent to which it can parallelize requests is somewhat limited, leading to slowdown in page loading, and prompting developers to rely on involved CSS tricks to group disparate images into one file, thereby reducing the number of individual images that need an HTTP transaction to retrieve.
This problem was identified in early 2012 by W3, which called for proposals to update HTTP to decrease latency by adding proper support for header compression, request pipelining, multiplexing requests over a single TCP connection, and fixing the head-of-line blocking bug present in HTTP 1. HTTP/2 was finally published as RFC 7540 in May 2015.
In a blog post about the rollout of support for HTTP/2, a representative from CloudFlare stated:
The main focus of both SPDY and HTTP/2 is on performance, especially latency as perceived by the end-user while using a browser, with a secondary focus on network and server resource usage. One main benefit is the ability to use a single TCP connection from browsers to a website, or in the case of CloudFlare, a reverse proxy. As such, CloudFlare is in the perfect position to provide the benefits of HTTP/2 to all CloudFlare users by accelerating the web surfing experience between clients’ browsers and CloudFlare, without the need to change anything on the origin server.
What supports HTTP/2 right now?
For CDN providers, Akamai’s Edge Servers also support HTTP/2.
For web servers, Apache 2.4.12 supports HTTP/2, though it takes some effort to configure use. Support was added in NGINX 1.9.5, and support was added for Microsoft Internet Information Services (IIS) in Windows 10 and Server 2016.
For browsers, Microsoft Edge supports HTTP/2, as does IE 11—but only on Windows 10. Support was added in Firefox 36, Chrome 41, and Safari 9. On mobile, support was added on Safari 9.1, Chrome 46, and Firefox for Android 42. At press time, IE Mobile and Blackberry Browser do not support HTTP/2. Of note, currently browsers only support HTTP/2 under TLS, requiring an encrypted connection to leverage the speed improvements of HTTP/2.
How do I enable HTTP/2 support in CloudFlare?
For Free and Pro accounts, HTTP/2 is already enabled. Users on Business or Enterprise plans can manually enable it under the “Network” panel in the CloudFlare Dashboard.
What happened to SPDY?
SPDY, Google’s answer to the problems in HTTP/1.1, has discontinued development in favor of HTTP/2. The basis of HTTP/2 is actually an improved version of SPDY. Google plans to remove support for SPDY from Chrome in the future.
What’s your speed?
Do you use CloudFlare, or another CDN for your website? Do you plan to roll out support for HTTP/2 manually for your organization? Share your deployment strategies in the comments.