ハイパーテキスト転送プロトコル(HTTP)は、ワールド・ワイド・ウェブの重要な構成要素です。ウェブブラウザーがウェブサーバーにウェブページを要求し、ウェブサーバーがページの内容を返すための通信レイヤーです。インターネットの多くの要素と同様、何十年も前から使われていますが、 最近の発表 によると、 HTTP/2が、15年ぶりとなる大規模な更新として、まもなく登場します。
初期のHTTPプロトコルは、ウェブが創設された1991年に、CERNでサー・ティム・バーナーズ=リーが最初に使用したプロトコルです。その後、長年にわたって改良され、1999年に現在世界中で使われている標準規格、 HTTP 1.1 として最終化されました。長年の間にウェブは劇的に変化し、画像、複雑なスタイルシートやJavaScriptコード、Flashなどの埋め込み要素が導入され、さらに多くの機能が加わりました。初期のHTTPはシンプルなウェブ向けの単純なプロトコルであり、メディアがますます豊富になるウェブサイトに対応するようには設計されていませんでした。
たとえば、Googleは毎日、 毎秒40,000件のウェブ検索 を処理しています。何十億人ものインターネットユーザーにサービスを提供する負荷に対応するため、同社の技術者は2009年、HTTPの改善を目的とする SPDY (「スピーディー」と発音)というプロジェクトを開始しました。当初は社内利用に限られていましたが、Twitter、Facebook、WordPress、CloudFlareなど、大量のトラフィックを扱う他のサイトも、性能向上を確認してSPDYを導入しました。
この動きは、インターネット標準の策定と推進を担うインターネット技術タスクフォース(IETF)の注目を集めました。IETFは2012年、SPDYをHTTP/2の基礎として採用し、2つのプロトコルは並行して開発されました。Googleがプロトコル開発を主導したものの、他のプロトコルで30年以上続けてきたように、作業はIETFの公開作業部会によって継続されています。
Googleは最近、 発表し 、まもなく登場するHTTP/2を優先してSPDYを廃止すると明らかにしました。
HTTP 1.1の課題
今日のウェブページでは、画像、CSSスタイルシート、動画などの埋め込みオブジェクト、外部サイトの広告などについて、おそらく1ページ当たり100件ほどのリクエストが発生します。そのためウェブサーバーに不必要な負荷がかかり、ページの読み込み時間も長くなります。HTTP 1.1では、1つの接続につき1件のリクエストしかサポートされないためです。
HTTP 1.1は、 レイテンシーの高い接続 、つまり応答時間の遅い接続に弱いという性質があります。携帯電話網を使うモバイル端末では、たとえ高速接続でも遅く感じられることがあり、これは大きな問題になり得ます。 HTTPパイプライン処理 を使うと、ブラウザーは前のリクエストへの応答を待つ間に、別のリクエストを送信できます。高レイテンシーの問題をある程度解消できるものの、 それ自体の問題 があり、ほとんどのブラウザーでは既定で無効になっています。
HTTP/2の利点
HTTP/2は、平文ではなくバイナリ形式のプロトコルになったため、解析が速く、転送時のデータもよりコンパクトです。HTTP 1.1ではメッセージを処理する方法が4種類ありましたが、HTTP/2では1種類に減っています。複数リクエストの問題に対処するため、HTTP/2ではサイトごとに1つの接続だけを使い、 ストリーム多重化 によって1つの接続に多数のリクエストをまとめます。これらのストリームは双方向でもあり、ウェブサーバーとブラウザーの双方が、1つの接続内でデータを送信できます。各ストリームには優先順位を付けられるため、ブラウザーはどの画像が最も重要かを判断したり、ブラウザーのタブを切り替えたときに新しいストリーム群を優先したりできます。
HTTPはステートレスなプロトコルです。各接続は、前後の接続とは結び付いていないリクエストとレスポンスのペアで構成されます。つまり、各リクエストには接続に関する関連データもすべて含める必要があり、そのデータは HTTPヘッダーとして送信されます。HTTP 1.1の進化に伴い、新機能が加わるにつれてヘッダーは大きくなってきました。HTTP/2はヘッダー圧縮を使ってこのオーバーヘッドを縮小し、接続を高速化すると同時に、 セキュリティを向上させます。
最後に加わった機能は、 サーバープッシュです。ウェブページが要求されると、サーバーはページを返しますが、ウェブブラウザーがページのHTMLを解析し、コード内にある画像などの要素について追加のリクエストを発行するまで待つ必要があります。サーバープッシュを使えば、ページの要求時に、待たずにそのページに関連するすべてのリソースをサーバーから送信できます。これにより、ウェブ接続に伴うレイテンシーを大幅に削減できます。
ウェブのバージョン2?
ウェブサーバーとウェブブラウザーがHTTP/2を実装し始めれば、数週間以内にも実現する可能性があります。ウェブ閲覧はより速く、応答性も高く感じられるでしょう。また、HTTP 1.1の制約を回避する必要がなくなり、開発者の作業も容易になります。
実際、主要ブラウザーの最新バージョンの一部(Firefox v36、Chrome v40、Internet Explorer v11)は、すでにHTTP/2をサポートしています。ChromeとFirefoxでは、HTTP/2は暗号化接続(SSL)でのみ使用されます。このことは、 Let’s Encrypt の取り組みと相まって、暗号化の普及をさらに後押しする可能性があります。
本記事は、 The Conversationとの協力により掲載されています。 元の記事をお読みください。
本記事の掲載は、世界経済フォーラムが見解を支持することを意味するものではありません。
アジェンダの最新情報を受け取るには、 週刊ニュースレターにご登録ください。
著者:ピーター・メイナードは、クイーンズ大学ベルファストでネットワークセキュリティシステムを研究する博士課程研究者。
画像:この写真イラストには、インターネットLANケーブルが写っています。REUTERS/Tim Wimborne

