ぼちぼち日記

おそらくプロトコルネタを書いていることが多いんじゃないかと思います。

Firefox NightlyでHTTP/2を試す方法

(注) 2014/3/27の Nightly より draft-10 (h2-10)対応になりました。

ちょっと前からですが、Firefox の Nightly ビルドで HTTP/2 が試験的に使えるようになりました。

Bug 950768 - Land http/2 draft08 pref'd off in mozilla-central

これまでは tryサーバでビルドしたものを置いてもらいダウンロードしていたんですが、開発担当の Patrick McManus さん曰く、もう面倒になったんで入れちゃったらしいです。

そこでテスト用にHTTP/2を利用したい方向けに、私が普段HTTP/2のテストをする手順通り Firefox Nightly を使って HTTP/2 の動作確認する方法を記載しておきます。

注意事項:

  • Nightly ビルドの動作は不安定な場合もあります。テスト以外には使わないでください。
  • 2014年2月12日時点での動作挙動をもとにしています。 将来HTTP/2のドラフト更新によって動作が変わる場合があります。(twitterのサーバ挙動も)
  • その他本記事を試して発生した不具合については保証しかねますので、試す場合は自己責任でお願いします。

1. Firefox Nightly Buildの入手

http://nightly.mozilla.org/
から記載の指示に従ってFirefox Nightlyを入手します。(注意事項が記載されていればよく読んでください)

2. Firefox Nightly で HTTP/2 と ALPN の機能を有効化する。

about:config で network.http.spdy.enabled.http2draft と security.ssl.enable_alpn の値を true に変更します(下図)。

3. (お好みで) プロファイルを切り替えて起動

私は普段Win上で Firefox を使っているので、オプションを指定してNightly 用にdefaultとは別のプロファイルに切り替えて起動しています。お好みでどうぞ。

"C:\Program Files (x86)\Nightly\firefox.exe" -no-remote -P "Nightly"

4. HTTP/2の動作確認

2014年2月12日現在 twitter が本番環境で HTTP-draft-09/2.0 対応していますので、twitter にアクセスして Firefox が HTTP/2 でアクセスしているか確認します。
ただ、そのままでは見た目で全く判別ができないので、 F12 を押して開発コンソールのネットワークでHTTPのレスポンスを確認します。
下図の通り、Version が HTTP/2 になっていて、 X-Firefox-Spdy ヘッダが HTTP/2 の Version Identification を出力していれば動作確認完了です。

他にも https://github.com/http2/http2-spec/wiki/Implementations のリスト中で動作しているHTTP/2サーバがあれば、そちらも試してみればよいでしょう。