HTTP/3とは?
HTTP/3 は、TCP の代わりに、QUIC を使用する HTTP の 3 番目のメジャーバージョンで、接続の確立遅延を削減し、信頼性のないネットワーク上のパフォーマンスを改善します。HTTP/3 対 HTTP/2
| 特徴: | HTTP/2 | HTTP/3 |
|---|---|---|
| 交通アクセス | TCPについて | QUIC(UDP以上) |
| ツイート | 分離層 | QUICに造られる |
| ハンドシェイク | TCP + TLS (2-3 RTT) | 0-1 RTTの |
| ヘッドオブラインブロック | TCPレベル | 排除 |
| 接続の移行 | サポートされていない | サポート |
| パケット損失の影響 | すべてのストリームをブロックする | パーストリームのみ |
HTTP/3 の仕組み
HTTP/2 over TCP:
Client Server
│─────────── SYN ────────────►│
│◄────────── SYN-ACK ─────────│
│─────────── ACK ────────────►│ TCP Handshake
│─────────── ClientHello ────►│
│◄────────── ServerHello ─────│ TLS Handshake
│─────────── Finished ───────►│
│◄────────── Finished ────────│
│─────────── HTTP Request ───►│ (3 RTT minimum)
HTTP/3 over QUIC:
Client Server
│─────── Initial + ClientHello ─►│
│◄────── Initial + ServerHello ──│
│─────── HTTP Request ──────────►│ (1 RTT)
With 0-RTT Resumption:
│─────── 0-RTT + HTTP Request ──►│ (0 RTT!)
QUICプロトコルの特徴
| 特徴: | メリット |
|---|---|
| UDPベース | TCPヘッドオブラインブロックを回避 |
| 統合されたTLS 1.3 | 常に暗号化され、より速い手掛かり |
| 接続ID | IPアドレスの変更を存続させる |
| マルチプレックスのストリーミング | 独立したストリーム配信 |
| エラー修正の転送 | 送金ニーズを削減 |
接続の移行
Mobile Network Switch (HTTP/2):
WiFi ──► Connection drops ──► New TCP connection ──► Start over
Mobile Network Switch (HTTP/3):
WiFi ──► Switch to cellular ──► Same QUIC connection continues
(Connection ID persists across IP changes)
採用状況
| プラットフォーム | HTTP/3 サポート |
|---|---|
| クロム染料 | 87+ (2020) |
| フォレックス | 88+ (2019) |
| サファリ | 14+ (2020) |
| エッジ | 87+ (2020) |
| クラウドフレア | 完全なサポート |
| AWSクラウドフロント | 完全なサポート |
| ログイン | 1.25.0+ (実験) |
パフォーマンス改善
- 高レイテンシーネットワーク: ページの読み込み速度が最大50%向上
- Lossyの関係: 単一パケット損失は全てのストリームをストールしません
- モバイルネットワーク: 接続はWiFi /セルラースイッチを存続させます
- 初期接続: 1-RTT 対 3-RTT セットアップ
ベストプラクティス
1. HTTP/2 と並んでいるDeploy: ブラウザは優雅に落ちる
2. Alt-Svcヘッダーを使用する: HTTP/3 の可用性を広告する
3. UDPを正しく設定: ファイアウォールがQUICトラフィックを許可することを確認します
4. モニター性能: プロトコルバージョンのメトリックを比較する
5. テストモバイルシナリオ:セルラーネットワーク上のHTTP/3エクセル
サーバー構成例
# Alt-Svc header to advertise HTTP/3
Alt-Svc: h3=":443"; ma=86400
HTTP/3は、特にモバイルおよび高レイテンシのユーザーのためのより速く、より信頼できる関係を渡す、Web輸送の未来を表します。