HTTP/2
HTTP/1.1 の性能限界を解消するために設計された、多重化・ヘッダー圧縮・サーバープッシュを備えたプロトコル
HTTP/2 とは
HTTP/2 は、2015 年に標準化された HTTP プロトコルのメジャーバージョンで、HTTP/1.1 の性能限界 (Head-of-Line Blocking、多数の TCP 接続) を解消する。Google の SPDY プロトコルがベースになっている。
HTTP/1.1 の問題
HTTP/1.1 の問題を図で示す。
HTTP/1.1: 1 つの TCP 接続で 1 リクエストずつ (直列)
[リクエスト1] → [レスポンス1] → [リクエスト2] → [レスポンス2]
ブラウザは 6 本の TCP 接続を並列に開いて回避 → 接続コストが高い
HTTP/2 の改善
HTTP/2 の改善を図で示す。
HTTP/2: 1 つの TCP 接続で複数リクエストを多重化 (並列)
ストリーム1: [リクエスト1] → [レスポンス1]
ストリーム2: [リクエスト2] → [レスポンス2] ← 同時に処理
ストリーム3: [リクエスト3] → [レスポンス3]
| 機能 | HTTP/1.1 | HTTP/2 |
|---|---|---|
| 多重化 | ❌ (1 接続 1 リクエスト) | ✅ (1 接続で並列) |
| ヘッダー圧縮 | ❌ | ✅ (HPACK) |
| バイナリフレーム | ❌ (テキスト) | ✅ (バイナリ) |
| サーバープッシュ | ❌ | ✅ (非推奨化) |
| 必要な TCP 接続数 | 6 本 | 1 本 |
HTTP/3 (QUIC)
HTTP/3 (QUIC) を以下にまとめる。
| 観点 | HTTP/2 | HTTP/3 |
|---|---|---|
| トランスポート | TCP | QUIC (UDP ベース) |
| HoL Blocking | TCP レベルで発生 | ストリームごとに独立 |
| 接続確立 | TCP + TLS (2〜3 RTT) | 0-RTT (再接続時) |
| 対応状況 | ほぼ全ブラウザ | 主要ブラウザ対応済み |
CloudFront での HTTP/2 / HTTP/3
CloudFront はデフォルトで HTTP/2 をサポートし、HTTP/3 もオプションで有効化できる。
フロントエンド開発への影響
HTTP/2 の多重化により、HTTP/1.1 時代の最適化テクニックが不要になった。
| テクニック | HTTP/1.1 | HTTP/2 |
|---|---|---|
| CSS スプライト | 必要 (リクエスト数削減) | 不要 |
| ファイル結合 | 必要 | 不要 (個別ファイルの方がキャッシュ効率が良い) |
| ドメインシャーディング | 必要 (接続数制限の回避) | 逆効果 (多重化が使えない) |
| インライン化 | 有効 | 不要 |
実務での活用方法は関連書籍にも詳しい。
この記事は役に立ちましたか?
関連用語
HTTP キャッシュ
Cache-Control, ETag, Last-Modified を使った HTTP レベルのキャッシュ制御
TLS 終端
ロードバランサーや CDN で TLS を復号し、バックエンドとの通信負荷を軽減する構成パターン
TCP/IP
インターネット通信の基盤となるプロトコル群で、データの分割・送信・再組立を信頼性高く行う
HTTP/3
QUIC プロトコル上で動作する次世代の HTTP
API Gateway + Lambda 統合
API Gateway と Lambda を組み合わせたサーバーレス API の構築パターン
WebSocket
クライアントとサーバー間で双方向のリアルタイム通信を実現するプロトコル
関連する記事
技術書の読む順番戦略 - 複数冊を組み合わせて理解を加速させる
技術書を 1 冊ずつ読むのではなく、複数冊を戦略的に組み合わせることで理解の深さと速度を飛躍的に高める方法を解説します。
チーム開発・マネジメント本ガイド - 技術リーダーが読むべき本
チーム開発、1on1、技術マネジメントを学べる技術書の選び方を紹介。メンバー時代からマネージャーまで、段階別の読書ロードマップを解説します。
技術書のタイトルに隠された法則 - 「入門」「実践」「詳解」の意味を読み解く
技術書のタイトルに使われる「入門」「実践」「詳解」などのキーワードには暗黙のルールがあります。タイトルだけで本のレベルと内容を見抜くコツを紹介します。