HTTP/2の特徴を整理する ― 多重化・HPACK・TCPのHOLブロッキング

情報処理技術者試験

この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。RFC 9113とHPACK仕様を基に、HTTP/2の多重化・バイナリフレーミング・ヘッダー圧縮を整理し、旧記事のHOL説明を補正しました。

検証ステータス:✅ HTTP/2・HPACKのRFC確認済み

HTTP/2の代表的な特徴は、1本のTCPコネクション上で複数のストリームを多重化できることです。HTTP/1.1のように複数接続へ分散しなくても、複数の要求・応答をフレーム単位で交互に流せます。

多重化は「リクエスト単位の待ち」を減らす

HTTP/2では各要求・応答をstream IDで識別し、1本の接続内で複数ストリームを同時進行させます。大きなレスポンスがあるからといって、別ストリームのHTTPメッセージ全体が必ず完了待ちになるわけではありません。

ただしTCP層のHOLは残る

HTTP/2はTCP上で動きます。TCPは順序どおりにバイト列を届けるため、パケット損失が発生すると、その再送待ちが同じTCP接続上の複数ストリームへ影響します。これがHTTP/3がQUICを使う理由の一つです。

ヘッダーはHPACKで圧縮する

HTTP/2はHTTPヘッダーフィールドをHPACKで圧縮します。静的・動的テーブルなどを利用し、CookieやUser-Agentなど繰り返し送られるヘッダーの冗長性を減らします。

Server Pushは仕様上存在した

HTTP/2にはPUSH_PROMISEを用いたServer Pushが定義されています。ただし現在の主要ブラウザで積極利用されている機能とは言えません。「HTTP/2ではServer Pushが定義されていない」という理解は誤りです。

参考情報

この記事の更新履歴

  • 2026-09-14 追加:TCP層HOLとHTTP/3との違い、Server Pushの位置づけを追加。
  • 2026-09-14 変更:HTTP/2の特徴を多重化・フレーミング・HPACKの役割で整理。
  • 2026-09-14 削除:内部style_prompt、本文H1、HTTP/2がHOLを完全解消するように読める説明を削除。

文書情報

記事タイトル
HTTP/2の特徴を整理する ― 多重化・HPACK・TCPのHOLブロッキング
作成日
更新日
Source URL
https://papanda925.com/?p=5520

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました