ネットワーク
上級

HTTP/2 (RFC 7540・2015)(エイチティーティーピーツー)

IETF 2015年5月標準化のHTTP 第2世代。Google SPDY 派生・Stream Multiplexing / HPACK / Server Push / バイナリフレーミング、HTTP/1.1 (1997) からの18年ぶり大改訂。

0 回閲覧
0 いいね
2026/5/15 更新
関連タグ
HTTP
ネットワーク
プロトコル

概要

HTTP/2 は IETF が2015年5月にRFC 7540 として標準化したHTTP 第2世代プロトコル。Google が2009年から開発したSPDY (スピーディ・SPDY/3.1) を基盤に発展、IETF の Mark Nottingham / Martin Thomson 主導で標準化。HTTP/1.1 (1997年RFC 2068) からの18年ぶり大改訂、Stream Multiplexing・HPACK ヘッダ圧縮・Server Push・バイナリフレーミング・優先順位制御で大幅高速化。HTTPS / TLS 1.2+ が事実上必須でセキュア・高速Web の標準、2024年Web トラフィックの50%+ がHTTP/2。

HTTP/1.1 vs HTTP/2

項目HTTP/1.1 (1997)HTTP/2 (2015)
メッセージ形式テキストバイナリ (Frame)
多重化なしあり (Stream)
同時接続数6 (ブラウザ制限)1 (Stream多重化)
HoL Blockingありあり (TCP層・HTTP層なし)
ヘッダ平文HPACK 圧縮
Server Pushなしあり (廃止傾向)
優先順位なしあり
Stream 数-100 (default)
TLS任意事実上必須
ヘッダ重複ありHPACK で削減

Stream Multiplexing

HTTP/1.1 は 1接続 = 1 req/res のため:

  • 6つの並列接続 (ブラウザ制限)
  • 1 req完了待ち
  • Head-of-Line Blocking

HTTP/2 は1接続上でN Stream 並列:

  • 同時100+ req
  • 独立した完了タイミング
  • ヘッダ圧縮で帯域節約
HTTP/1.1:
  Connection 1: req1 → res1 → req3 → res3
  Connection 2: req2 → res2 → req5 → res5
  (6 connections max)

HTTP/2:
  Connection 1: req1, req2, req3, req4 → res1, res2, res3, res4 (Stream並列)

HPACK ヘッダ圧縮

HTTP/2 用ヘッダ圧縮アルゴリズム (RFC 7541):

  • Static Table (62 共通ヘッダ事前定義)
  • Dynamic Table (接続毎の追加学習)
  • Huffman 符号化
  • 同一ヘッダ繰返しを大幅圧縮
  • 帯域30-50%削減 (典型)

バイナリフレーミング

HTTP/2 はテキスト → バイナリ Frame 化:

Frame 種別用途
DATAリクエスト / レスポンスボディ
HEADERSリクエスト / レスポンスヘッダ
PRIORITYStream 優先順位
RST_STREAMStream 中止
SETTINGS接続パラメータ
PUSH_PROMISEServer Push
PINGキープアライブ
GOAWAY接続終了
WINDOW_UPDATEFlow Control
CONTINUATIONヘッダ継続

Server Push (廃止傾向)

サーバが要求前にリソース送信:

  • HTML 解析前にCSS / JS / 画像Push
  • 当初の期待: 大幅高速化
  • 実際: Cache Busting / Push 効率の困難
  • 2022年Chrome がServer Push 廃止 (現代RFC 9113 で「非推奨」)

HTTP/2 採用率 (2024年)

地域HTTP/2 採用率
全世界50%+ (主流)
米国55%
Cloudflare 配信95%+
Google サーバ100% (HTTP/3 経由)

SPDY → HTTP/2 移行

年出来事
2009Google SPDY 公開
2012Chrome / Firefox SPDY 採用
2014-11IETF Last Call (HTTP/2 ドラフト)
2015-02HTTP/2 標準化承認
2015-05RFC 7540 公開
2016SPDY 廃止
2022-06RFC 9113 改訂版

主要対応Webサーバ

サーバHTTP/2 サポート
nginx1.9.5+ (2015-09)
Apache HTTPD2.4 + mod_http2
Caddy2.0+ (標準)
LiteSpeed5.0+
H2O2.0+
IIS10 (Windows 10 / Server 2016)
Cloudflare全Edge
AWS ALB / CloudFront全

関連用語との違い

  • vs HTTP/1.1: 多重化・バイナリ・ヘッダ圧縮
  • vs HTTP/3: TCP / UDP・HoL Blocking 解消差
  • vs WebSocket: 双方向 / 単方向

FAQ

Q1: 自分のサイトHTTP/2 化? A: nginx 1.9.5+ で listen 443 ssl http2; で1行追加。SSL証明書 (Let's Encrypt 等) が前提。Caddy / Cloudflare 経由なら自動。

Q2: HTTP/3 への移行は? A: HTTP/2 (TCP) は安定継続・HTTP/3 (UDP/QUIC) は新規併用。両者並存でAlt-Svc ヘッダ経由自動切替。

Q3: HoL Blocking 解消は不完全? A: HTTP/2 はHTTP層でMultiplexing解消だが、TCP層 (1パケット損失で全Stream 停止) はそのまま。HTTP/3 (QUIC) で完全解消。

この記事について
カテゴリーネットワーク
難易度上級
作成日2026/5/15