HTTP/2.0がもたらすWebサービスの進化「HTML5 Conference 2013」

GoogleやTwitterが大規模に導入しているSPDYをベースとして、HTTP/2.0の標準化作業が現在急ピッチで進められている。十数年ぶりに改訂されるこの新プロトコルによってWebサービスが今後どう変わるのか。「HTML5 Conference 2013」では、株式会社インターネットイニシアティブの大津繁樹氏、株式会社林達也 (@lef)氏、W3C中島博敬氏が、レピダムデモを交えてHTTP/2.0の概要について解説した。

DSC03184

14年ぶりに改訂されるHTTP/2.0標準化作業

現在、IETF(Internet Engineering Task Force)にて標準化作業が急ピッチで進められているHTTP/2.0。1999年にHTTP 1.1が規定されて以来、14年ぶりに改訂されることになった新プロトコルの概要と、Webサービスが今後どう変わるのかについての最新情報が紹介された。

HTTP/2.0はインターネット技術の標準化を推進する任意団体IETF(Internet Engineering Task Force)のアプリケーションワーキンググループにて標準化が進められている。IETFには、Google、Microsoft、Mozilla、Twitterなどの協賛企業が名を連ねている。今回登壇した林氏、大津氏もIETFのメンバーである。

SPDYがベースとなるHTTP/2.0

HTTP/2.0は、Googleが開発したプロトコルSPDY(スピーディ)がベースとなっている。GoogleがSPDYを世に送り出した背景には、インターネット環境の大きな変化があった。ユースケースの大半がPCからモバイルへと変化つつある中で、HTTPというプロトコルをモバイルに最適化し、Webの表示を高速化するという目的で作られたのがSPDYだった。

HTTP/1.1のセマンティクスを維持し互換性を保持した上で、新しいシンタックスを導入しフレーム化することになっているHTTP/2.0は、このSPDYのアイデアをもとに一般公募で仕様提案を決定する。既にデプロイされGoogleサーバで動いているこのSPDYに、相互運用性を持たせたものがHTTP/2.0といえるだろう。

新たに導入されるHTTP/2.0独自の技術的な特徴

SPDYをベースにしつつ、今回新たに導入されるHTTP/2.0独自の技術的な特徴にも注目したい。まず挙げたいのは、2段階・3種類の接続方法だ。

第一段階の接続1つ目のTLS+ALPNは、TLS接続時にALPN拡張フィールドを活用し、HTTP/2.0に接続する。

2つ目は現在議論中のHTTP Upgradeだ。WebSocketと同様の仕組みでHTTP/1.1の接続後、Upgradeヘッダを使いHTTP/2.0に接続をアップグレードする。

3つ目はDirect接続で、DNSレコードやHTTPヘッダによるリダイレクトであらかじめサーバがHTTP/2.0対応とわかっている場合は、直接接続する。

そして第二段階での接続でクライアントから24byteのマジックコードをサーバに送り、初期ウィンドウサイズやストリームの最大同時オープン数などの情報を含む情報(SETTINGフレーム)を交換する。これが完了してからHTTP/2.0の通信が始まることになる。

サーバプッシュ機能の「予約」という概念もSPDYにはない点だ。先読みさせるリクエストヘッダとストリームIDをサーバがクライアントに予約すると、クライアントは予約されたリクエストは新しくリクエストしない。サーバがコンテンツをプッシュしてクライアントにキャッシュするため、無駄なやりとりがなくなる。

またHTTP/2.0ではSPDY にはない新しいヘッダ圧縮仕様(HPACK)も追加された。ここではサーバとクライアントでヘッダ情報とその状態をテーブルとして持ち合い、ヘッダの差分情報を符号化してやり取りする。

最終的にはヘッダ情報を圧縮し、バイナリの文字列として扱う。Cookieやどんどん増えていくユーザーエージェントなど、これまで冗長で大きいものだったクライアントからサーバに送るヘッダ情報が、差分情報として必要なものだけのやりとりになるため、データ量は2~3割削減される。モバイル環境でブラウザを使う場合は、このヘッダ圧縮の効果は非常に大きいだろう。

DSC03189

今後HTTP/2.0でwebサービスはどう変わる?

今後実際にHTTP/2.0でwebサービスがどのように変わるのかというと、昔より表示がスムーズで速くなったと感じる人はいるだろうが、ユーザー視点では一見なにも変わらない。

大きなインパクトを与えると考えられるのは、インフラ視点だ。サーバリソース・ネットワークリソースを効率的に使えるため、大規模サービスほどその効果を享受できるだろう。またサーバプッシュやサーバイニシエイトのフレームを活用し、LINEのようなブラウザ以外での用途での展開も進むと考えられる。

今後の動きとしては、GoogleやFacebookといったInternet GiantsでHTTP/2.0の導入が進むが、HTTP/2.0のメリットが少ない小規模サイトや一般ユーザーはHTTP/1.1という2極化になると予想される。ブラウザ側の対応が進むことで、HTTP/2.0に最適化されたサービスが登場すると考えられる。特にモバイルでの性能改善が大きく期待される。

最近米国のNSAによる盗聴問題(PRIZM)が話題となったが、脆弱性・盗聴への対策としてHTTP/2.0をhttps(SSL)に限定するかどうかは現在議論中だ。IETFの中で賛成、反対に意見は分かれているが、HTTP/2.0がインターネットのセキュリティ動向に大きな影響を与えるのは間違いないといえるだろう。

(レポート:畑毛あゆみ/撮影:萩原崇之)

【講演資料・セッション映像】

Powered byNTT Communications

tag list

アクセシビリティ イベント エンタープライズ デザイン ハイブリッド パフォーマンス ブラウザ プログラミング マークアップ モバイル 海外 高速化 Angular2 AngularJS Canvas Chrome Cordova CSS de:code ECMAScript Edge Firefox Google Google I/O Google I/O 2014 HTML5 Conference 2013 html5j IoT JavaScript Microsoft Node.js PhoneGap Polymer SkyWay spdy TypeScript UI UX W3C W3C仕様 Webアプリ Web Components WebGL WebRTC WebSocket