このページの本文へ

新しいHTTPで大容量・モバイル化したWebに対応

16年ぶりに登場!アカマイ、伝送効率を高めたHTTP/2を解説

2015年07月06日 14時00分更新

文● 大谷イビサ/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

7月6日、アカマイ・テクノロジーズはHTTP/1.1以来16年ぶりに刷新されたHTTP/2についての説明会を行なった。米アカマイのプリンシパルアーキテクトで、IETF HTTPワーキンググループのチェアマンであるマーク・ノッティンガム氏がなぜHTTPを変えるのか?HTTP/2の概要などについて説明した。

HTTPはなぜ変わるのか?

 現在のWebを支えるHTTP(Hyper Text Transfer Protocol)の最新版であるHTTP/2は、今年の2月にIESG(Internet Engineering Steering Group)で正式に承認。RFC7540として文書化され、標準化が進められることになる。

 なぜHTTPを変えるのか? ノッティンガム氏は「Webが変わったから」とシンプルに答える。「Heavier and More Interactive」ということで、HTTPでデータ伝送を調べると、ページごとの転送量は600KBから1500KBに拡大し、ページごとのリクエスト数も100を超えるのが普通になっている。また、サーバー側での遅延がコンバージョンレートに直結するようになり、モバイルが台頭してきたことでレイテンシの問題も深刻になってきた。

米アカマイ プリンシパルアーキテクト マーク・ノッティンガム氏

 こうした課題に対して、多くのWebエンジニアはHTTPに対していくつか“ハッキング”を行なってきたノッティンガム氏は指摘する。複数の画像を1つにまとめる「スプリッティング(Splitting)」、画像自体をCSSに埋め込む「インラインニング(Inlining)」、Webブラウザの制限を超えるため、複数のホストに対して1つの画像を分散させる「シャーディング(Sharding)」、さらに1つのページをリクエストをJavaScriptなどのファイルをまとめる「コンタテネーション(Concatenation)」など。ノッティンガム氏は、「システムの効率を高めるためとはいえ、本来HTTPが意図していない方法を使っているので、ハッキングと言える。とにかくリクエストの数を減らす必要がある」と指摘する。

 では、なぜこんなにHTTPのリクエストは、これほど“値が張る”のか? 1つはHTTPにおけるTCPの使い方があるという。通常、Webブラウザは1ドメインあたり4~8のコネクションを使うが、サーバー側は1度に1つのリクエストしか処理できない。「複数のコネクションを有効活用できず、ふくそうが起こりやすくなり、サーバーにかかる負荷も大きくなる」とノッティンガム氏は指摘する。

1つのWebページに対して、複数のコネクションを貼るため、負荷が大きい

 また、HTTPヘッダにも無駄が多いという。ノッティンガム氏は、典型的なWebサイトへの4つのテキストリクエストを見ながら、重複箇所が非常に多い点を披露。4つのリクエストを送るためには、少なくとも3つのパケットが必要で、しかも2569バイトのうち、1797が重複したバイトであると説明した。

重複の多いHTTPヘッダの無駄

SPDYベースで伝送効率を向上したHTTP/2

 こうした課題に取り組んだHTTP/2は、TLSの拡張仕様であるGoogleのSPDY(スピーディ)をベースにしたもの。約2年で仕様を策定し、Webブラウザメーカーやアカマイ、F5など35社以上で実装を進めている。「このプロトコル自体には新しいものは入っていない。既存のHTTPの改善を取り込んで、仕様化したもの」とノッティンガム氏は語る。

SPDYからスタートしたHTTP/2の策定

 HTTP/2のゴールは、ページあたり1つのTCPコネクションで済むようにするというものだ。HTTP1.1ではパイプライン化という手法が用いられたが、巨大で遅いレスポンスがその他のレスポンスをブロックしてしまう "head-of-line blocking" が発生していた。これに対して、HTTP2は長い期間のフローに向いたTCPの特性を活かしつつ、よりリソースを有効活用し、公正に利用するのを目的としてきた。

 そのため、HTTP/2では1つのコネクションで、複数のデータのやりとり(ストリーム)を多重化できるようになり、ヘッダ内の31ビットのストリームIDで識別される。フレームも、ヘッダ、データのほか、コネクションを制御するためのフレームタイプが複数導入されることになった。

シンプルなHTTP/2のヘッダ

多重化による複数のストリームが可能に

 また、テキストベースのHTTP/1と異なり、HTTP/2ではバイナリプロトコルになり、「HPACK」というヘッダ圧縮が導入され、やりとりされるデータ自体が少なくなる。また、クライアント/サーバー側の両者からストリームを構築できる全二重通信の特性を活かしたサーバープッシュも導入。HTMLの解釈を待たず、サーバー側が必要とするであろう要素をあらかじめクライアントにキャッシングするため、ラウンドトリップが回避される。

HTTP/2対応が確実に進む一方で、開発者側の課題も

 プロトコル面で伝送効率の向上が図られたHTTP/2。「パフォーマンスが向上することが保証されているわけではない」(ノッティンガム氏)とのことだが、今までの5~15%向上したという検証はできているという。HTTP/2のベースであるSPDYの導入により、伝送効率を高めたGoogleやTwitterのような例もあり、コネクション確立のための待ち時間が大きく減ることが見込まれる。また、Webエンジニアにとっては、従来のようなHTTPのハッキングが不要になるというメリットもある。

 現在、ChromeやFirefox、Safari、OperaなどSPDYに対応していたWebブラウザはもちろん、遅れていたサーバー側でもApacheやNginxなどでHTTP/2の実装が進んでいる。一方、HTTP/2ではHTTP/1に比べて、コネクションの寿命が長くなっているため、ロードバランサーやフェイルオーバー、タイムアウトなどについて再考する必要があるほか、いつプッシュを使うのか、フローコントロールや優先順位も新たに設計しなければならない。また、HTTP/1ではテキストだったメッセージがバイナリ化されたため、Telnetのようなツールではデバッグできず、Wiresharkのプラグインなど別途でツールが必要になるようだ。

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

アクセスランキング

  1. 1位

    sponsored

    60年の時を超え「COBOL」がGitHub Copilotでよみがえる 勘定系アプリの“超難関”モダナイに7社が挑戦

  2. 2位

    ビジネス・開発

    富士ソフトがエンジニア1万人超を「AIネイティブ」化 実装力を武器にフィジカルAIなど3本柱に注力

  3. 3位

    ITトピック

    IT技術者の8割超「AI生成コードには人間のレビューが必要」/「偽・誤情報を見破れる」と自信を持つ人はICTリテラシーテストの正答率が低い、ほか

  4. 4位

    ITトピック

    実用化が楽しみすぎるスマート技術たち 「長距離ワイヤレス給電」から「室内向け太陽電池」「超音波センサー」まで

  5. 5位

    sponsored

    「現場に行くのが当たり前」を変えたアズビルのリモート調整 効果はプライスレス

  6. 6位

    TECH

    攻撃するAIと防御するAI 日本企業のセキュリティ対策にいま何が必要か?

  7. 7位

    デジタル

    東京タワー相当の紙を“完全撤廃” 点検業務をkintone化した“現場ファースト”な改善術

  8. 8位

    デジタル

    IoTデバイスをサイバー攻撃から守る IoT向けゼロトラストの“3つのアプローチ”

  9. 9位

    ビジネス

    開発案件の立ち上げを「60分から1分」に ソースコード管理も一本化したKDLのBacklog活用術

  10. 10位

    ITトピック

    6.4万人の熱狂をAIが導く FIFA W杯全スタジアム「デジタルツイン」化が変えた観戦体験

集計期間:
2026年07月21日~2026年07月27日
  • 角川アスキー総合研究所