この記事について
この記事は、生成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を完全解消するように読める説明を削除。

