HTTP/2: 長く待たれた続編

高速な Web の世界に踏み出しましょう

Microsoft では、1999 年以来初めて大幅に改訂されたハイパーテキスト転送プロトコル (HTTP) のサポートを現在 Internet Explorer に実装しています。HTTP は長いこと手付かずできたので、改訂が必要でした。

長年にわたり、Web アーキテクチャを合理化するさまざまな取り組みが行われてきましたが、HTTP/2 ほどの規模のものはありませんでした。Microsoft は IETF HTTPbis ワーキング グループのメンバーとして惜しみなく、効率的で互換性の高いこの新しい標準規格の開発に協力してきました。新しい標準規格の名称は、わかりやすく HTTP/2 です。HTTP/2 は、Windows 10 Technical Preview において新しい Internet Explorer に組み込まれ、一般に利用できるようになりました。

HTTPbis ワーキング グループでのこれまでの成果については、Microsoft Open Technologies HTTP/2 ページ (英語) で概要をご紹介しています。

Internet Explorer が率先して HTTP/2 を実装するのはなぜか

ますますリアルタイム性とモバイル性が要求される世界では、パフォーマンスが重要です。多少改善されただけであっても、違いが出ます。たとえば、ある Bing の調査により、ページの読み込み時間が 10 ミリ秒増えると歳入が 25 万ドル減ることが判明しました。読み込み時間が 100 ミリ秒 (これは人間が瞬きする速度の 1/3 です) 長くなっただけで、検索結果の関連性を向上することでユーザーのエンゲージメントを改善できた 3 か月分の作業がムダになっています。商取引系の Web ページで応答が 100 ミリ秒遅延すると、検索が途中で放棄され、大手小売りサイトの収入が 1% 減損することがわかっています。したがって、このワーキング グループがしていることは、現実的に経済的な影響があるのです。

これまでの標準規格では何が問題か

Web ページが読み込まれる際の処理は、800x600 ピクセルのディスプレイの時代から、現在もほとんど変わっていません。現在の Web の速度は上がっているのは確かです。しかし、さらに速く、さらにリソースを効率的に使用できる可能性があります。

現在も、ページの構築には、ブラウザーとサーバー間で多数のクエリが交わされる必要があり、どの呼び出しでもサーバーが応答しないと次のクエリを送ることができません。確かに並列接続を複数開くこともできますが、それでも同時に要求できる項目数に限りがあります。また、応答の順序が指定されるため、サーバーが応答を最適化することができません。

HTTP/2 は何が違うか

HTTP/2 では、利用可能な帯域幅をすべて利用することで、より短時間で効率的に Web ページの要素が提供されます。長時間接続と多重化 (複数の要求を 1 つの接続にまとめる HTTP/2 の機能) によって、より多くの Web ページ項目がより短時間で届きます。将来は、サーバー プッシュや要求の依存関係などの実験的な HTTP/2 機能によって、Web のパフォーマンスがさらに向上する可能性があります。

開発者にはどのような影響があるか

HTTP/2 は、当初から、前身となる HTTP/1.1 との互換性に配慮して設計されています。つまり、HTTP ライブラリの開発者は API を変更する必要はなく、HTTP ライブラリを使用する開発者もアプリケーション コードを変更する必要はありません。これは非常に大きな利点の 1 つです。以前の成果物を最新の標準規格に合わせるために数か月費やす必要はなく、開発を続けられます。

ネットワークやセキュリティはどうなるか

接続の数と頻度が少なくなるということは、HTTP/2 ではネットワークに対する負荷も軽減されます。現在の Web の規模を考えると、特にモバイル ネットワークでは、ネットワークの効率が格段に向上する可能性があります。HTTP/2 の効率のよい接続モデルなら、サイトに TLS を追加した場合のパフォーマンスの影響も軽減されると思われ、従来よりも多くのサイトで TLS を追加できるようになるでしょう。

いつから利用できるか

HTTP/2 のサポートは、Windows 10 Technical Preview の IE に組み込まれています。IE の HTTP/2 実装の取り組みが現実に始まったのは、Windows および Windows Phone 8.1 で実験的な SPDY 3.0 プロトコルを追加した時点であるといえます。このおかげで、多重化機能のある HTTP プロトコルの経験が得られ、HTTP/2 と業界標準規格となる予定のプロトコルを採用する道のりが楽になりました。

SPDY は HTTP/2 標準規格のよい足がかりになりましたが、実験的なプロトコルであるため、長期の採用には向いていません。HTTP/2 の開発により、将来のすべての IE のバージョンでは、SPDY のサポートを削除する予定です。現在 SPDY を使用している Web サイトやアプリケーションは、ほとんどまたはまったくコードを変更せずに HTTP/2 に移行できる予定です。

開発者やサイト所有者が変更に向けて準備すべきことは何か

  • Windows 10 Technical Preview バージョンの IE を実行する。
  • 開発者ツールを使ってみる。ネットワーク トレースを有効にする。
  • HTTP/2 ドラフト 14 をサポートしているサイトを読み込む。次の URL のページに記載されている各実装担当者のページで、参考になるサイトが紹介されています。https://github.com/http2/http2-spec/wiki/Implementations (英語)
  • HTTP/2 のパケット フローを見てみる。

Technical Preview では、HTTP/2 サーバーもサポートしています。つまり、IIS でサイトを作成して、コンテンツをエンド ツー エンドでテストできます。ただし、Technical Preview 版では IE も IIS も、HTTP/2 ではセキュリティで保護されない接続 (HTTP) をサポートしません。HTTP/2 ではセキュリティで保護される接続 (HTTPS) のみをサポートします。

ぜひ弊社の HTTP/2 実装を試し、その性能を検証してください。皆様のフィードバックをお待ちしております。その際は、@IEDevChat または Connect をご利用くださいますようお願いいたします。

-- シニア プログラム マネージャー、Rob Trace

-- シニア プログラム マネージャー、David Walp