- ネットワーク HTTP/ プロトコルの動向 林 達也 前田 薫 株式会社レピダム HTTP 通信の効率化を目指す HTTP/ の仕様策定が最終段階へ 実装 の普及が進み Web からのインターネット構造全体の変革につながる SPDY か ら 始 ま っ た HTTP 再 編 は HTTP/ へと昇華 ブラウザー実装もかなり進んでいる状況にある 0 年 月 日 日本時間の 0 年 月 日 主だが 今後 HTTP/ に置き換わるだろう に 晴れて HTTP/ の Internet Draft が IESG Last またサービス側でも グーグルの一部のサービ Call という最終段階のステータスになった 今後 スや Twitter をはじめとした多くのサービスで実 も細かな修正はあると思われるが これで現行の仕 際に展開されており インターネット標準として 様による HTTP/ の RFC 化はほぼ確定したと言っ は非常に速い速度で現実世界への普及が行われて ていいだろう いる 原稿執筆時点では多くのケースではまだ SPDY が HTTP/ は グーグルの SPDY というプロトコ ルをベースに インターネット標準として有識者 の知見を反映して作成された次世代の HTTP だ HTTP/. のセマンティクスを維持 トランスポートを改善する HTTP/ HTTP/ の 仕 様 検 討 は 0 年 8 月 に SPDY/ 仕様策定が最終段階 ブラウザー実装 も普及 から派生する形で開始された HTTP/ では SPDY というベースとなるプロトコルがあった 理された のうち メッセージ形式とトランスポー とはいえ HTTP/ としての標準化への道のりに トの部分のみを変更し そのほかの部分はそのまま おいてはさまざまな仕様の変化があった とする 特にメソッド ステータスコード URI SPDY そして HTTP/ の普及に関しては グー ヘッダーフィールドの意味は HTTP/. のまま保 グルはもちろんのこと モジラやマイクロソフト たれる 資料 --1に HTTP/ プロトコルスタッ などのブラウザーベンダーの強い推進体制もあり クの概要を示す HTTP/. の仕様 RFC70 RFC7 として整 第 部 製品 技術動向
資料 -- HTTP/ プロトコルスタックの概要 出典 筆者作成 と HTTP/ のどちらを使うかを選択するために バイナリーフレーム通信で複数リクエ ストを多重化 TLS の拡張機能である ALPN Application Layer HTTP/. では単一の TCP 接続において ある クライアントとサーバーの間で HTTP/. Protocol Negotiation が定義された 時点で送信されるリクエストまたはレスポンスは HTTP/ では HTTP/. に対して以下の点を ひとつであった HTTP/. にもパイプライン通 改善する 信の仕様はあるが 特定のリソースが大きい場合 後続のリソースは先行するデータ転送が完了する 単一の TCP 接続で複数のリクエストとレスポン まで待たされる これを回避するため 複数のリ スを並行して送信 ソースを並行して読み込む場合 ブラウザーは複 ヘッダー圧縮 数の TCP 接続を生成していた 資料 -- 上 こ サーバーからクライアント方向へのデータ送信 れに対し HTTP/ ではリクエストとレスポンス サーバープッシュ が可能 の組をストリームという単位として処理し さら にストリームを複数のフレームに分解して TCP 接 これらの機能により ブラウザーでの Web ペー 続を介して送受信する これにより リソースの ジロード時間を短縮することができる また交信開 大きさに影響を受けずに並行してリソース取得が 始に必要な TCP および TLS ハンドシェイクのオー 行えるようになった 資料 -- 下 バーヘッドを減らすことができる 第 部 製品 技術動向
資料 -- HTTP/ では並行してリソースを取得 出典 筆者作成 され 先頭にフレームの長さを持つ フレームは サーバープッシュによるサーバーから のデータ送信 HEADERS DATA SETTINGS などのタイプがあ HTTP/ ではサーバー側からもストリームを開 り リクエストとレスポンスの転送の他 ストリー 始することができる クライアントが次にリクエ ム単位または接続全体の状態制御を行う ストするであろうリソースを サーバーから先に送 HTTP ヘッダーは HEADERS フレーム内のキー 信してしまうことができる これをサーバープッ バリューペアの構造として送信される HTTP/ シュと呼ぶ クライアントがサーバープッシュに ではこの構造を直接バイナリー化することで 文 よって受信したコンテンツをキャッシュに格納す 字列処理によるヘッダー解析のオーバーヘッドを ることにより リソースが必要になった時点です フレームはバイナリーフォーマットとして定義 低減している また HPACK という圧縮形式 を でに手元にデータが届いているというプッシュ動 採用し リクエスト間で共通のヘッダーを少ない 作を実現できる 通信量で送信できる サーバープッシュの有効活用には サーバーと リクエストとレスポンスの body 部を送信するた クライアントが協調動作をすることが必要である めに DATA フレームが使われる DATA フレーム 実際の Web ブラウジングの局面での活用はまだこ の送信では優先度制御とフローコントロールをサ れからの課題である ポートする これらの機能によって JavaScript 一方 サーバープッシュを用いたイベント通知の や CSS など 描画開始に必要な情報を先に取得し 実装は有望である 現在ロングポーリングによっ 画像などの大きなコンテンツは後から取得すると て行われている非同期的なサーバーからクライア いう制御を行え ユーザー体験を向上することが ントへの通知は サーバープッシュで自然に置き できる かえることが可能である IETF の webpush ワー 第 部 製品 技術動向
キンググループで検討されている 時点 を資料 -- に示す 現在多くのブラウ ザーと Internet Giant と呼ばれるサービスで SPDY ブラウザー実装は進むもサービス側の 対応が 国内大手サイトは慎重な対応 ま た は HTTP/ が サ ポ ー ト さ れ て い る な お 主要なブラウザー サーバーソフトウェア ェアの 7% 以上が SPDY または HTTP/ に対応済 大手サービスの SPDY と HTTP/ 対応状況 執筆 であるとのことだ caniuse.com の調査によれば現在のブラウザーシ 資料 -- 主要なブラウザー サーバーソフトウェア 大手サービスの SPDY HTTP/ 対応状況 0 年 月 7 日時点 出典 Wikipedia SPDY, HTTP/ および Implementations http/http-spec Wiki をもとに筆者作成 国内に目を向けると 大手サービスで SPDY や 進めば HTTP よりも HTTPS の割合が高い状況が HTTP/ を採用しているところはほとんど見つけ 出現してもおかしくない HTTP/ には平文の通 られない プロトコルが策定段階であるため慎重 信も用意されているが ブラウザーによる対応の になっていると考えられる 今後 HTTP/ が RFC 足並みが 化されると それを契機に HTTP/ が一気に普及 状況も踏まえると急速な HTTPS 化が進むことは する可能性があるだろう 大いに考えられるだろう っているとはいえず その他の周囲の HTTP/ と TLS End to End 暗号化 の組み合 ネットワーク構造に与える影響 わせによる影響は地味に大きい サービス開発者 HTTP/ と関連して起きる変化として TLS 通信 や利用者には影響は少ないように極力配慮されて の重要性が急速に高まった点が挙げられる SPDY いるものの 例えば透過型プロキシーで実現され では TLS が必須だったことや いわゆる PRISM/ ていたウィルスチェック等のエンタープライズ分 スノーデン事件 等 理由はいくつかあるが 現 野での通信解析や CDN によるコンテンツ配信 在の Web/HTTP の世界では急速に HTTPS による 効率的なキャッシュや フィルタリングサービス 通信が高く望まれるようになっており このまま 等も HTTP/ の効率化や暗号化の影響を受ける 第 部 製品 技術動向
可能性が高い SPDY が HTTP/ へ の 契 機 に な っ た よ う に QUIC が新しいトランスポート層のプロトコルの 今後の展望 Web から変わるインター ネット 革新の契機になる可能性は高いと思われる 現在 HTTP/ は HTTP/. とは大きく異なる 現代 取り組みが始まった これは まず UDP ポート 的で多機能 そして複雑なプロトコルとなった を使って新しいトランスポート層のプロトコルを 今後は HTTP/ が必要な規模のサービスからゆっ 検討するという取り組みとなっている くりと だが確実に普及が進んでいくと思ってい 今までのインターネットは TCP/IP というイン いだろう また 新規のサービスでも初期からの ターネット成立時の仕組みを中心にして構築され 採用が進むのは間違いない ており Web もその枠組みの中にいた しかし さらに新しい取り組みも始まっている グー HTTP/ そして QUIC への流れは Web の要望 グルは現在 TCP ではなく UDP ベースのトランス にインターネットが合わせるという今までにない ポート層の通信プロトコル QUIC を開発してい 変化が生じている る QUIC は TCP による SPDY&HTTP/ では解 HTTP/ を契機に Web を中心としたプロトコ 決できなかった問題を解決することを目的として ルがインターネットを変革するようなところまで おり すでに実際のサービスでの展開や Chrome 来たことは 新しい時代の始まりだと言っていい Chromium ブラウザーへの実装など進めている IETF では IP Stack Evolution Program という だろう. 当時は HTTP/.0 として検討が始まったが 後に HTTP/ と呼称 が改められた.TLS を使わない場合の手法も用意されている.CRIME 攻撃 http://en.wikipedia.org/wiki/crime に耐性があ るように設計された.https://github.com/http/http-spec/wiki/Implementations. アメリカ合衆国の国家安全保障局 NSA による監視プログラム PRISM を かつて NSA や CIA に勤務していたエドワード ス ノーデンが 0 年に暴露した事件 第 部 製品 技術動向