How to enable HTTP 2.0 in Firefox
If things go as planned, HTTP 2.0, the next version of the HTTP network protocol, will be submitted for consideration as a proposed standard in late 2014.
Intended not to replace the current standard, HTTP 1.1, but to improve it, it is the first new version of the HTTP protocol ever since HTTP 1.1 was described back in 1999.
The main goals of HTTP 2.0 are to improve the performance of the network protocol, including connection latency as well as resource usage on the network and server side. Features that HTTP 2.0 will support include header compression, request-response pipelining or multiplexing across asynchronous connections.
The basis of HTTP 2.0 is SPDY, a technology that gained popularity in recent years and is now supported by the majority of modern web browsers.
HTTP 2.0 has not been finalized, but browser makers such as Mozilla are already working on implementations. As far as Firefox is concerned, Mozilla added support for the protocol back in January.
The feature is disabled by default currently, but can be enabled manually in Firefox. At the time of writing, Mozilla's implementation is based on draft-09 and compression-05.
To enable HTTP 2.0 in Firefox Nightly, you need to do the following
- Type about:config into the browser's address bar and hit the enter key.
- Confirm you will be careful if the warning message appears.
- Search for network.http.spdy.enabled.http2draft and double-click the preference.
- Search for security.ssl.enable_alpn and double-click the preference.
- This changes the values of both preferences to true, which means that they are enabled.
Tip: You can undo the changes at any time by repeating the steps outlined above. When you double-click the preferences when they are set to true, they will be set to false so that the feature is no longer enabled in the browser.
Mozilla has added the following notes that explain what the current implementation supports:
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.
Unless you plan to test the HTTP 2.0 implementation on your network or the Firefox web browser, there is little reason to enable the feature right now.
If you do not use Nightly but want to test the implementation, you can download special builds that have been created for just that purposes.