05 Aug 2014 - HTTP/2 draft 14 in Firefox

Update 2014-08-06 - Fixed off-by-one in the length of time we’ve been working on HTTP/2

As many of you reading this probably know, over the last one and a half years (or so) the HTTP Working Group has been hard at work on HTTP/2. During that time there have been 14 iterations of the draft spec (paired with 9 iterations of the draft spec for HPACK, the header compression scheme for HTTP/2), many in-person meetings (both at larger IETF meetings and in smaller HTTP-only interim meetings), and thousands of mailing list messages. On the first of this month, we took our next big step towards the standardization of this protocol - working group last call (WGLC).

There is lots of good information on the web about HTTP/2, so I won’t go into major details here. Suffice it to say, HTTP/2 is going to be a great advance in the speed and responsiveness of the web, as well as (hopefully!) increasing the amount of TLS on the web.

Throughout all these changes, I have kept Firefox up to date with the latest draft versions; not always an easy task, with some of the changes that have gone into the spec! Through all that time, the most recent version of HTTP/2 has been available in Nightly, disabled by default, behind the network.http.spdy.enabled.http2draft preference.

Today, however, Firefox took its next big step in HTTP/2 development. Not only have I landed draft 14 (the most recent version of the spec), but I also landed a patch to enable HTTP/2 by default. We felt comfortable enabling this by default given the WGLC status of the spec - there should be no major, incompatible changes to the wire format of the protocol unless some new information about, for example, major security flaws in the protocol come to light. This means that all of you running Nightly will now be able to speak HTTP/2 with any sites that support it. To find out if you’re speaking HTTP/2 to a website, just open up the developer tools console (Cmd-Alt-K or Ctrl-Alt-K), and make a network request. If the status line says “HTTP/2.0”, then congratulations, you’ve found a site that runs HTTP/2! Unfortunately, there aren’t a whole lot of these right now, mostly small test sites for developers of the protocol. That number should start to increase as the spec continues to move through the IETF process.

The current plan is to allow draft14 to ride the trains through to release, enabled by default. If during the course of your normal web surfing, you see any bugs and the connection is HTTP/2 (as reported by the developer tools, see above) and you can fix the bug by disabling HTTP/2, then please file a bug under Core :: Networking:HTTP.