近年、Google や Teitter、Facebook などの大手サイトでは、より高速な通信を実現するプロトコルである HTTP/2 が実装されてきており、それに伴ってレンタルサーバー各社も HTTP/2 への対応を進めています。
しかし、HTTP/2 が何となくよさそうだ、ということはわかっても、どういった仕組みになっているのか、また具体的にどのようなメリットがあるのか、よくわかっていない人も多いでしょう。
ここでは、HTTP/2 が成立するまでの経緯やその仕組み、HTTP/2 での通信の確認方法などについて解説し、あわせてレンタルサーバー各社の HTTP/2 対応状況についても紹介したいと思います。
HTTP/2 とは
まず始めに、HTTP/2 の仕組みをざっと説明します。レンタルサーバーを使用するうえで、特に覚える必要がある内容ではないため、興味がない場合は飛ばしてください。
HTTP/2 は、Webサイトのデータをやり取りするためのプロトコル(通信規格/データのやり取り上の取決め)である、「HTTP(Hypertext Transfer Protocol)」の最新規格です。
HTTP は HTTP/0.9 から始まり、HTTP/1.0 を経たのち、HTTP/1.1 が長い期間使用されてきましたが、時代を経るにつれてコンテンツの情報量や質が変化したことに伴い、さまざまな問題点も浮き彫りになってきました。
そこで、HTTP/1.1 と互換性を持ったまま、その問題点を解消し、より速く・効率的にデータのやり取りを行えるようにした、HTTP/2 が生まれました。
HTTP/2 の歴史
HTTP/2 は、もともと Google が考案した SPDY(スピーディー)というプロトコルをベースに作られています。
SPDY は、SSL 上で HTTP を効率よく転送できるような仕組みになっており、この SPDY の特徴を生かしたまま、HTTP/1.1 と互換性を持つような形に作られたのが、この HTTP/2 です。(SPDY の最終バージョンである SPDY/4 が、ほぼ HTTP/2 と同等の仕様になっています)
HTTP/1.1 の問題点を解決
従来使用されてきた HTTP/1.1 には、以下のような仕様による制約から、パフォーマンスが悪くなってしまうという問題がありました。
- 1つのリクエストが完了するまで、次のリクエストを送れない
- サーバーはリクエストがあった順番通りにしかレスポンスを返せない(HoL (Head-of-Line) ブロッキング問題)
こういった制約は、テキストを中心としたシンプルな HTML サイトでは、さほど大きな問題になりませんでしたが、多数の画像や動画などを含んだ、現在のような大規模な Webサイトが増えてきた場合には、その効率の悪さが目立ってしまいます。
HTTP/2 は、これらの問題を解消するために開発されました。
HTTP/2 の特徴・メリット
HTTP/2 は、その仕組みにおいて、主に以下の4つの特徴があります。
- パイプライン化とストリームの多重化(HoLブロッキング問題の解消)
- HTTPヘッダーの圧縮
- サーバー側からのコンテンツプッシュ通信
- コンテンツの種類による優先度設定
以下、各項目の内容について、簡単に説明します。
パイプライン化とストリームの多重化(HoLブロッキング問題の解消)
※wikipediaより引用
1つのTCPコネクション上で、サーバーからの応答を待つことなく、複数の HTTPリクエストを送信する技術です。
多くのレンタルサーバーの公式サイトで解説されている HTTP/2 の中心となる仕組みで、1つのリクエストが完了しなくても、次のリクエストを送ることができるようにすることで、同時に複数のデータのやり取りを行えるため、より効率的に処理を行うことが可能になっています。
HTTPヘッダーの圧縮
HTTP の先頭に含まれるヘッダー情報を圧縮することで、データの容量を減らすことができます。また、1度送信したヘッダー情報を再送信せず、必要な差分(異なる部分)のみ送信することで、効率をアップできます。
サーバー側からのコンテンツプッシュ通信
HTTP/1.1 の場合、サーバーが HTML を送信し終わった後に、あらためてブラウザから Javascript、Flash、画像などを要求することではじめて、サーバーがそれらのデータを送り返しますので、やり取りに時間がかかります。
しかし、HTTP/2 ではサーバーがコンテンツの全体を、(ブラウザからのリクエストを待たずに)一気に送信することができるため、データの送信速度をより高速化することができます。
コンテンツの種類による優先度設定
ページの表示に関係ないリソースより、HTMLやCSS など、Webサイトの骨組みに当たるデータを先に読み込むようにするために、優先度をつけることができます。
一見、コンテンツプッシュ通信と矛盾する機能のように見えますが、この2つの機能がお互いを補い合う形で、最適な通信状況を実現できます。
ブラウザ毎のHTTP/2の対応状況
HTTP/2 による通信を確立するためには、サーバー側だけではなく、ブラウザ側も HTTP/2 に対応する必要があります。
ただ、以下のように、現在はほとんどのメジャーなブラウザが HTTP/2 に対応していますので、特にブラウザの対応状況について気にする必要はありません。
- Google Chrome (ver.30は設定が必要)
- Mozilla Firefox (ver.34から標準で有効)
- Microsoft Windows 10上のInternet Explorer 11
- Microsoft Edge
- Opera
- Safari 9
HTTP/2による通信の確認方法
レンタルサーバーが HTTP/2 に対応しており、実際に設定をしたとしても、見かけ上は HTTP/1.1 と全く変わりはありません。そのため、HTTP/2 による通信が行われているかどうかを確認したくなります。
HTTP/2 での通信が行われているかを確認するには、Google Chrome や Firefox のプラグインを導入して確認する方法もありますが、サイトに URL を入力するだけで確認できる、より簡単な方法があります。
・keycdn(HTTP/2 Test)
https://tools.keycdn.com/http2-test
上記のページの枠内に、確認したいサイトの URL を入力し、右の「Test」をクリックすれば、HTTP/2 にて通信が行われているかどうかを確認できます。(※「Public」のチェックが入っていると、テストしたURLが公開されますので、必要に応じてチェックを外してください)
例として、ロリポップ!で公開している HTTP/2 のテストサイトのURLを入れて確認してみます。
HTTP/1.1
HTTP/2
HTTP/2 での通信になっている場合は、上記のように緑の文字で「Yeah!(サイトURL)supports HTTP2.0.」と表示されます。
HTTP/2 対応のレンタルサーバー
最後に、レンタルサーバー各社における HTTP/2 の対応状況について紹介します。
HTTP/2 は、主に SSL との組み合わせによって使われており、ブラウザも「HTTP/2+SSL(HTTP/2 over TLS)」の形にのみ対応しています。そのため、HTTP/2 を使用するには、あわせて SSL証明書(独自SSL)も必要になります。
独自SSL も Google が推奨していることもあって、また無料で使えるところがどんどん増えてきてはいるものの、まだ SSL証明書は有料のところが多いです。
以下の表には、無料のSSL証明書の使用可否についてもあわせて記載してあります。
レンタルサーバーのHTTP/2対応状況
HTTP/2 | 無料の独自SSL | 提供開始日 | |
mixhost | ○ | ○(COMODO社) | 2016年9月 |
ロリポップ! | ○ | ○(Let’s Encrypt) | 2017年3月 |
エックスサーバー | ○ | ○(Let’s Encrypt) | 2017年9月 |
heteml | ○ | ○(Let’s Encrypt) | 2017年10月 |
スターサーバー | ○ | ○(Let’s Encrypt) | 2017年11月 |
さくらのレンタルサーバ | ○ | ○(Let’s Encrypt) | 2018年3月 |
WADAX | ○ | ×(有料) | 2018年4月 |
まとめ
以上、通信の新規格である HTTP/2 の仕組みについての解説と、HTTP/2 による通信の確認方法、および HTTP/2 対応のレンタルサーバーの紹介でした。
HTTP/2 の仕組みなどについては、レンタルサーバーを使用するうえでは特に意識することはありませんので、特に覚える必要もありませんが、様々な技術によって通信の効率化と高速化が図られていることが、何となくは理解できるのではないかと思います。
HTTP/2 を使用するには、SSL証明書(独自SSL)も必要ですが、現在はまだ独自SSL に対する需要のほうが高いです。
そのため、HTTP/2 はおまけのような感じでしかないかもしれませんが、HTTP/2 はサーバーへのアクセスが多くなるとより生きてきますので、あわせて導入してもらえるのはありがたいですね。
もし複数のサイトを運営するのであれば、その数だけ SSL証明書も必要になりますので、エックスサーバーや mixhost といった、無料で独自SSL を利用できるレンタルサーバーを選ぶのがいいでしょう。