BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース HTTP/2はどうなるか

HTTP/2はどうなるか

ブックマーク

原文(投稿日:2014/02/02)へのリンク

HTTP/2 Working Groupが完了に近づき、実装が始まりつつあるが、グループの議長であるMark Nottingham氏がブログにこの新しいプロトコルに期待する9つのことを書いている。

  1. HTTPと同様のAPIを使えること。氏が言うには、"HTTP/2を成功させるには、既存のウェブで利用できる必要がある。つまり、プロトコルの意味を変えるのではなく、私たちが知っているHTTPを改善することに注力するということだ"。新しい機能を細かくチューニングする仕組みもあるかもしれないが、新しいメソッドやヘッダ、ステータスコードはない。
  2. チャプターリクエスト。"HTTP/2は多重化を利用して、ひとつのコネクションに同時に複数のメッセージを折り込む。したがって、ひとつの大きなレスポンス(または、サーバの処理に時間がかかるレスポンス)がほかを邪魔しない。さらに、ヘッダ圧縮も追加され、普通のリクエストとレスポンスのヘッダが帯域を占有することはなくなる。いくら小さなリクエストでもだ。これはモバイル環境にとっては大きな進歩だ。モバイルでは大きなリクエストのリクエストヘッダによってリソースの多いページは複数回のラウンドトリップが発生し、ページの読み込み時間が爆発する。"
  3. ネットワークとサーバに親和的な設計になっている。"HTTP/2はコネクションが少なるように設計されている。従って、サーバとネットワークの負荷は少なくなる。これはネットワークが混んでいるとき、特に有効だ。HTTP/1は平行して複数のコネクションを使っているので問題を起こしている。"HTTP/2はホストごとにひとつのコネクションを使うことができる。
  4. HTTP/2は"サーバプッシュ"の概念を導入する。これによってサーバがデータをクライアントのキャッシュに、クライアントが必要とする前に送信することができ、性能が改善される。もちろん、クライアントが必要としない場合もある。その場合は、HTTP/2で必要ないことを通知できる。
  5. 新しいプロトコルでは、クライアント(ブラウザ)がレスポンスが必要とするかどうかの判断を変える方法を提供する。HTTP/1の場合、クライアントはコネクションを閉じるしか方法がない。"HTTP/2はRST_STREAMフレームを追加して、クライアントが方針を変えられるようにする。ブラウザがページを離れる場合、またユーザがダウンロードをキャンセルする場合、新しいコネクションを開くことを回避できる"
  6. HTTP/2は暗号化が強化されており、以前InfoQでも取り上げている。
  7. HTTPリクエストやレスポンスを手動で解析したい、または、telnetでサーバに接続したい場合、そのようなことができなくなるということに準備する必要がある。HTTP/1はテキストベースのプロトコルだが、HTTP/2はバイナリだ。"バイナリのプロトコルは、解析のオーバヘッドが少なく、軽量だが、この大きな変更の本当の理由は、バイナリのプロトコルがシンプルで、エラーが起きにくいからだ。"氏はこの点について氏はテキストの範囲を確定する方法を例に説明しているが、HTTP/1とテキストの欠点は脆弱性にある。"HTTP/1のテキストベースの特性は多くのセキュリティ問題の原因になっている。メッセージの解析方法について異なる実装がさまざまな方針を打ち出しているため、悪意のある連中に隙を与えてしまう(例えば、レスポンス分割攻撃)."
  8. HTTP/2が劇的にクライアントとサーバの性能を改善してくれると期待しないでほしい。"この新しいプロトコルは性能上の障害を取り除くものだと考えるのがより正確だ。ブラウザとサーバがこの利点の利用タイミングと利用方法を学習すれば、性能は序所に改善するだろう。"氏が指摘するように、多くのサイトはHTTP/1の限界を念頭に置いて作られており、HTTP/2の利点を享受するには再構成のための時間が必要だ。"さらに、HTTP/2がネットワークに親和的になったのには副作用もあり、TCPの混雑の制御がより目立つようになる。ブラウザがホストごとにひとつのコネクションしか使わなくなるため、最初のウィンドウとパケットのロスが目立つようになるのだ。"
  9. HTTP/2が進化の終わりだと考えているなら、考え直したほうがいい。チームはすでに次を考えている。"現在、皆、HTTP/2を'ドアから出す'ことに注目しているが、いくつかのより先進的(かつ実験的)機能は除外されている。TLS証明書のプッシュやクライアントへのDNS登録のような機能だ。両者とも性能を改善する。HTTP/3では機能に盛り込まれるかもしれない。実験がうまく行けば、だが。もちろん、HTTP/3は今回私たちが見逃してしまった課題をコミュニティがすべて解決するバージョンになるだろう。コミュニティがSPDYを広め、HTTP/2の実装を広めつつあるという経験が、HTTP/2を完成に近づけているという信頼感を大きくしている。"

以上がHTTP/2に対する端的で優れた概観だ。あなたはどう思うだろうか。何か心配事はあるだろうか。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT