Networking/Archive/http2: Difference between revisions

m
Manuel Bucher moved page Archive/Networking/http2 to Networking/Archive/http2: conform to naming convention of archived content
No edit summary
m (Manuel Bucher moved page Archive/Networking/http2 to Networking/Archive/http2: conform to naming convention of archived content)
 
(32 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Template:Archived}}
HTTP/2 for Firefox is currently under development.
HTTP/2 for Firefox is currently under development.


This page contains a link to the most recent build with internet-draft level support for it. HTTP/2 is not available yet on any of the normal distribution channels (e.g. release, beta, aurora, nightly). Builds here are provided for the purpose of enhancing interop with other implementations and gaining experience with the protocol to inform its standardization - this space will change rapidly.
HTTP/2 draft support is included in routine builds of firefox, enabled by default in firefox 34 and later. <b>To get the most up to date support you should use the nightly channel</b>.
 
The current implementation is of draft-06 and compression-03.
 
It is serial 021 cset 613c073aaeab on try
 
This build uses 0-bit prefix encodings for name and value lengths in the compression block. The specification is unclear on whether those should be 8 bit prefixes or 0 bit prefixes. twitter.com uses 0-bit as well, akamai and katana have favored 8, iij has transitioned from 0 to 8. Future compression definitions will define this more clearly (presumably as 8, which is more efficient) and will provide better interop.


source is at
The current implementation is of draft-14 with compression-09 [august 6 nightly]
https://tbpl.mozilla.org/?tree=Try&rev=613c073aaeab


Builds for windows, os x, and linux are at
Firefox will only be implementing HTTP/2 over TLS - and so far that means for https:// schemed URLs (see below for http:// with TLS support). It does enforce the protocol's >= TLS 1.2 requirement - if a server negotiates HTTP/2 with a lower TLS version it is treated as a protocol error. (there is a preference for changing that for testing purposes if you need it.)
https://ftp.mozilla.org/pub/mozilla.org/firefox/try-builds/mcmanus@ducksong.com-613c073aaeab/


Firefox will only be implementing HTTP/2 over TLS - and right now that means for https:// schemed URLs. It does enforce the protocol's >= TLS 1.1 requirement - if a server negotiates HTTP/2 with a lower TLS version it is treated as a protocol error. (there is a preference for changing that for testing purposes if you need it.)
This build supports basic push and continuations and both alpn and npn.


This build supports basic push and continuations.
feedback of any sort welcomed to pmcmanus@mozilla.com and hurley@mozilla.com


There is a WIP tree of draft-07 (compression-04) here: https://github.com/mcmanus/moz-http2/tree/07 .. There are no builds because it isn't yet compliant with that version of the draft. When it is ready it will subsume the 06 builds on this page.
There is a separate, more experimental, build available that supports HTTP/2 draft-12 for http:// URIs using Alternate-Services (-01) and the "h2-12" profile. Sometimes this is known as opportunistic encryption. This allows HTTP/2 over TLS for http:// URIs in some cases without verification of the SSL certificate. It also allows spdy/3 and spdy/3.1 for http:// URIs using the same mechanism.


feedback of any sort welcomed to pmcmanus@mozilla.com
That code is at https://hg.mozilla.org/try/rev/3d48401236e4 and https://github.com/mcmanus/gecko-dev/tree/oe10 with downloads at  https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/try-builds/mcmanus@ducksong.com-3d48401236e4
210

edits