HTTP/2って何なの?

  • author 福田ミホ
  • X
  • Facebook
  • LINE
  • はてな
  • クリップボードにコピー
  • ×
HTTP/2って何なの?

16年ぶりにアップデートなんて。

HTTP/2の仕様がついに確定しました。つまり、もうすぐWebページの読み込みが速くなったり、接続が切れにくくなったり、いろいろと快適になるはずです。でも、HTTP/2ってそもそも何なんでしょうか?

簡単に言えば、HTTP/2とはWebサーバーとブラウザの間のやりとりの仕方を規定するハイパーテキスト・トランスファー・プロトコル(HTTP)のアップグレードです。もうずっと前にあってもおかしくないものでした。というのは、HTTPの原型ができたのは1980年代の終わり、ティム・バーナーズ・リーがWorld Wide Webの構想を立ち上げたときのことです。それが現行のHTTP/1.1にバージョンアップされたのも、1999年のことでした。この16年の間に、当然Webは大きく変わりました。

HTTP/2は、他のあらゆる優秀なアップグレードと同様、従来バージョンのいくつかの問題に対処しています。その結果、Webブラウザの読み込みが速くなったりしてうれしいと同時に、Webの歴史という意味では意義深いことでもあります。インターネットの進化とともに、Webページのサイズはどんどん巨大化していきました。2010年末から現在までの約4年間だけですが、その巨大化ぶりをグラフにしたのがこちらです。

150220_http2whatis2.jpg

HTTP/1.0や1.1の設計では、ページサイズが増えるということはより多くのリクエストが送られ、より多くのデータが複製されるということで、よりデータが複製されるということは、ネットワークがさらに混雑するということです。そしてブラウザは、面白サイエンス動画とかトロピカルなハウスミュージックとか、ますます多くのデータを求めてリクエストを発し続けてきました。

そこでHTTP/2の登場です。インターネット技術標準化を推進する団体、IETF(Internet Engineering Task Force)のHTTPワーキンググループにより開発された新バージョンは、まずとにかくページ読み込み速度を改善しようとしています。インスパイア源になったのは、グーグルがHTTPをベースに高速化したSPDYというプロトコルでした。HTTP/1.1ではひとつの接続で一度に処理できるリクエストがひとつになってしまう問題があり、その解決策も不完全でしたが、HTTP/2ではひとつの接続を多重化して複数のリクエストを処理できるようになりました。

HTTPとHTTP/2の間には、他にも細かい違いがいろいろあります。たとえば「ヘッダー圧縮」とか「サーバープッシュ」といった手法があるのですが、そのへんの詳細はHTTPワーキンググループのGithubのページに、日本語したものはこちらにあります。

プロトコルが新しくなることで、以前のプロトコルを前提に作られたWebが壊れてしまうのではと懸念する人もいるかもしれません。が、その心配は全然(多分)ありません。HTTPワーキンググループの目標のひとつは、HTTP/2とHTTP/1.1に互換性を持たせて、我らがWebを壊さないことでした。実際、HTTP/2はすでにFirefoxやChromeでは使われています。Web全体で徐々に使われつつありますが、特にモバイル端末では読み込みが速いなと感じるくらいで、違いは一見わかりにくいです。

またセキュリティに関しても変更点があります。HTTP/2そのものの仕様では暗号化が必須というわけではないのですが、FirefoxとChromeでは、暗号化したHTTPSでの接続しかHTTP/2ではサポートしないようです。このことはクライアント側ではあまり意識する必要がないかもしれませんが、Webサイトなどを運営している人にとっては、「HTTP/2の恩恵を受けるには実質的にHTTPS対応が必要」ということになりそうです。ただその分、Web全体がよりセキュアになることが期待されてもいます。

ともあれ、我々のWeb人生が明るくなりそうなアップデートでうれしいですね。

Adam Clark Estes - Gizmodo US[原文

(miho)