2016 年 10 月 12 日
HTTP/2 とは?
HTTP/2 は、2015 年 5 月に RFC7540 として規格化された、Web で使用する通信プロトコル HTTP/1.1 の新しいバージョンです。
HTTP/2 の概要
現在、インターネットの進化とともに Web ページのサイズ、トラフィック量はどんどん増加しています。
2011 年時点では、1サイトで転送されるデータのサイズが平均で 709 KB でしたが、 2016 年 9 月現在では、わずか 5 年で 4 倍弱の 2,481 KB になっており、この傾向は今後ますます加速していくものと予測されます。
2011 年 2 月 26 日 ~ 2016 年 9 月 1 日 のトラフィック
出典:HTTP Archive
現在の Web は、HTTP/1.1 という 1999 年に規定された古い通信プロトコルが主流ですが、非効率な通信仕様のプロトコルです。 そこで、Web の高速化を目的として、Google が開発していた新しいプロトコル「SPDY」をベースとして「HTTP/2」が誕生しました。
HTTP/1.1 と HTTP/2 の比較:技術仕様
1. 多重化されたストリーム
HTTP/1.1
1 つの TCP コネクションで 1 つのリクエストとレスポンスを順番に処理する仕様のため、同時に複数の TCP コネクションを使用していました。そのため、リクエストが多く複雑になればなるほど、Web サイトの表示速度が低下していました。
HTTP/2
この問題を解決するため、「ストリーム」と呼ばれる仮想的な通信経路を作って多重化することで、1 回の TCP コネクションに対して複数のリクエストを並列処理できるようになりました。その結果、リクエストが多く複雑になればなるほど、HTTP/1.1 と比べて、Web サイトの表示速度が大幅に向上します。
さらに、この「ストリーム」は優先度や重みをつけることが可能であるため、クライアントがサーバーに対して優先してほしいリソースを指定して受信可能です。
2. データのバイナリフレーム化
HTTP/1.1
データのリクエストやレスポンスはテキストベースでした。テキストは人間が内容を理解しやすい形式ですが、コンピューターが理解するためにはデータの解析が必要なため、処理に時間がかかります。
HTTP/2
データのリクエストやレスポンスは「フレーム」と呼ばれるバイナリの通信プロトコルとなりました。
バイナリデータは、テキストに比べてより効率的に解析ができるため、HTTP/1.1 と比べて、Web サイトの表示速度が向上します。
3. ヘッダー圧縮(HPACK:RFC7541)
HTTP/1.1 では、「HTTP ヘッダー」というブラウザの種類や OS の情報(User-Agent)やクッキー(Cookie)などが含まれる情報を通信のリクエストを行うたびに送信する必要がありました。例えば、クライアントが同じサーバーに多くのリソース(画像など)を要求した場合、ほとんど同じようなリクエストが大量に送信されます。
HTTP/2 では HPACK というヘッダー圧縮フォーマットを使用することで、1 度送信したヘッダーを再送信せずに、必要な差分ヘッダーのみ送信することが可能になりました。これにより、通信の冗長なやり取りを省けるため、 HTTP/1.1 と比べて効率化が図れ、サーバー負荷やトラフィックの軽減などに貢献します。
4. サーバープッシュ
HTTP/1.1 ではクライアントからサーバーにリクエストが来た際、サーバーがリクエストの内容を解析してレスポンスを1つずつ返します。
HTTP/2 の新機能「サーバープッシュ」は、次のリクエストが来る前に必要となるコンテンツをクライアントへ送信可能です。送信されたコンテンツはクライアントのキャッシュとして保存されます。次のリクエストの際にはあらかじめ保存されたキャッシュから読み込むことで通信時間が省略できるため、Web サイトの体感的な表示速度が向上します。
HTTP/1.1 と HTTP/2 の比較:動作
デモサイト
以下は当社デモサイトの例です。同じコンテンツでも Web サイトの作りによっては、HTTP/2 にするだけで表示速度が向上します。
http://http2vs1.cybertrust.ne.jp/
4 KB バイトの画像を 1,000 個読み込むコンテンツの表示例
多くのコンテンツを配信する EC サイトや同時アクセスが集中するサイトのサーバー管理者への恩恵や、Web 閲覧者も 表示の待ち時間によるストレスが軽減される可能性があります。
HTTP/2 を使用するためには?
Web サーバーと Web ブラウザの間で HTTP/2 での通信を行うためには、双方が HTTP/2 に対応している必要があります。加えて、HTTPS による SSL/TLS 通信を行う必要があります。
HTTP/2 での通信に必要なもの
対応 Web サーバー:
IIS、Apache、nginx など、現在普及している Web サーバーの最新版では、HTTP/2 をサポートしています。 Web サーバーに SSL/TLS サーバー証明書を導入していない場合、証明書を導入する必要があります。
対応 Web ブラウザ:
Internet Explorer、Edge、Chrome、Firefox、Safari など、現在普及している Web ブラウザの最新版で、HTTP/2 をサポートしています。
SSL/TLS サーバー証明書:
HTTP/2 での通信を行うためには、サーバーとブラウザの間の通信を、HTTPS による SSL/TLS 通信にする必要があります。つまり、 Web サイトのすべてで HTTP/2 での通信を行いたい場合、Web サイトの全てのページを HTTPS 通信にする必要があります。 全ページ SSL/TLS 通信は、近年多くのサイトで導入されており、セキュリティを向上させる上でも重要性が高まっています。
HTTP/2 対応環境と Apache・nginx で HTTP/2 の設定を行う際の手順は、サイバートラスト社によるホワイトペーパー「HTTP/2 対応環境と設定資料」をご参考ください。
HTTP/2 導入の価値
サーバー管理者の視点
すでにお使いのサーバーが HTTP/2 対応環境である場合、Apache・nginx 共に設定ファイルの編集と再起動を行うのみで対応するため、とても簡単に導入可能です。HTTP/2 を導入することにより、トラフィックが効率的に処理できるようになりサーバー負荷が低減、ひいては所有コスト効率の向上も期待できます。
ウェブマスターの視点
HTTP/2 化にともない、ページ表示の驚くほどの高速表示により訪問客の顧客満足度向上、離脱率の低下、さらには全ページ HTTPS 通信による安心を提供することができます。
利用者の視点
最新のブラウザを使うだけで、特別な設定なく、従来よりも高速にページを参照することができ、ストレスのないブラウジングを行うことができます。また、SSL/TLS による暗号化通信なので個人情報が盗まれることもなく安心して利用することができます。
現在の Web サイトは、多くの写真・動画を用い、Java Script や CSS などの参照ファイルも多く、1 ページを構成するファイルサイズは肥大化してます。高速通信技術である HTTP/2 をいち早く導入することで、「快適な Web サイト」という差別化をお客様に提供できます。
全ページ SSL 化の際には、サイバートラストの SSL/TLS 証明書が皆様に貢献いたします。HTTP/2 化の際には、どうぞ SureServer をご用命ください。