#0148（2025/05/24）HTTP/3 & QUIC の概要

## HTTP/3 & QUIC 


### 1. HTTP/3 の概要

HTTP/3 は 2022 年に RFC 9114 で標準化された HTTP の第 3 世代です。従来の TCP ベースから脱却し、UDP 上に構築されたトランスポート層プロトコル **QUIC** を用いることで、0‑RTT 接続確立・マルチストリーム通信・移動時の接続継続など、レイテンシ削減と信頼性向上を実現します。HTTP/1.1/2 と **メソッド・ステータスコード・ヘッダ** はほぼ共通で、アプリケーションロジックは変わりませんが、転送フレーミングと輻輳制御アルゴリズムが根本的に刷新されています。

### 2. HTTP/3 の現状（普及率・エコシステム）

| 指標                          | 値 (2025‑05) | 出典           |
| --------------------------- | ----------- | ------------ |
| ウェブサイト採用率                   | **34.9 %**  | W3Techs ※1   |
| 上位 1M サイトでの採用率              | 39.6 %      | W3Techs ※2   |
| 主要ブラウザ対応率                   | >95 %       | Wikipedia ※3 |
| Google サービス向けクライアント通信に占める割合 | 88 %        | ESnet ※4     |

Cloudflare・Fastly・AWS CloudFront・Akamai などの CDN はデフォルトで HTTP/3 を提供し、ASP.NET 7、nginx‑quic、LiteSpeed、Caddy v2 が公式サポートを完了しています。一方、一部企業ネットワークや旧式ファイアウォールでは UDP/443 を遮断しているケースがあり、**フォールバック戦略**（HTTP/2 併用）の設計が依然必須です。

### 3. QUIC の概要

| 項目      | 内容                                                                                             |
| ------- | ---------------------------------------------------------------------------------------------- |
| フレームワーク | RFC 9000 (Transport), RFC 9001 (TLS 1.3), RFC 9002 (輻輳制御)                                      |
| ベース     | UDP にカプセル化 (ユーザ空間実装)                                                                           |
| 特徴      | *0‑RTT 接続再開* / *マルチストリーム* / *ヘッドオブラインブロッキング解消* / *接続移行 (Connection Migration)* / *TLS 1.3 組込み* |
| 実装例     | lsquic, quiche, msquic, ngtcp2, chrome‑quic                                                    |

QUIC は "Quick UDP Internet Connections" の名の通り、UDP パケットに自前の信頼性機構（再送制御・順序制御・暗号化）を持たせています。TCP のカーネル実装を変更せず、ユーザ空間でアップグレード可能な点が採用を加速させました。

### 4. OSI 参照モデル / TCP‑IP モデルにおける位置づけ

```
 アプリケーション層 ──────────── HTTP/3 (RFC9114)
 プレゼンテーション層 ──────────── (TLS1.3はQUICに内包)
 セッション層 ──────────── (同上)
 トランスポート層 ──────────── QUIC (RFC9000)
 ネットワーク層 ──────────── IP
 データリンク層 ──────────── Ethernet / Wi‑Fi / 5G …
 物理層 ──────────── 各種媒体
```

TCP‑IP 4 階層で見ると、QUIC はトランスポート層に位置しますが、TLS と信頼性機構を内部に統合しているため「トランスポート＋セッション＋暗号化」をワンパッケージで提供すると解釈するのが実態に近いです。

### 5. QUIC と UDP の関係

* **UDP は“素の配送箱”** — コネクションも順序制御もない。
* **QUIC は“配送箱の中に作った宅配ネットワーク”** — UDP パケットに接続 ID・暗号化・再送・フロー制御を載せ、ユーザ空間で自由に更新できる。

このアプローチにより、OS カーネルを介さずデプロイでき、TLS/輻輳制御のバージョンアップも迅速です。また NAT 越えや携帯キャリア網での UDP 処理効率も年々改善しています。

### 6. HTTP/1・HTTP/2・HTTP/3 の比較

| 特性          | HTTP/1.1                   | HTTP/2                       | HTTP/3            |
| ----------- | -------------------------- | ---------------------------- | ----------------- |
| 下位プロトコル     | TCP                        | TCP                          | QUIC (UDP)        |
| 接続確立        | 1×TCP 3‑way + optional TLS | 同左 + to‑many multiplex       | 1‑RTT (再接続 0‑RTT) |
| マルチプレキシング   | パイプライン (HoLB 問題)           | ストリーム多重化 (しかし TCP レイヤで HoLB) | 独立ストリーム (HoLB 解消) |
| 暗号化必須       | × (実運用は TLS)               | × (実運用は TLS)                 | **○ (TLS1.3 組込)** |
| ヘッダ圧縮       | gzip over text             | HPACK                        | QPACK             |
| コネクション移行    | ×                          | ×                            | **○**             |
| ファイアウォール通過性 | 高                          | 高                            | UDP 制限で要確認        |

### 7. HTTP/2 → HTTP/3 への移行が Web アプリ開発に与える影響

1. **フロントエンド最適化の再考**

   * スプライト画像・バンドル JS/CSS は HTTP/2 以降非推奨。HTTP/3 でも *ファイル分割 × Lazy‑loading* が基本。
2. **接続コスト削減 = API 粒度の設計自由度**

   * 0‑RTT により多数のサブリクエストを細かく発行しても初期遅延が目立ちにくい。
3. **リアルタイム通信の代替候補**

   * WebTransport/Datagram API が QUIC ベースで標準化進行。既存の WebSocket/TCP に比べ低遅延。
4. **障害設計**

   * UDP/443 をブロックする組織向けに HTTP/2 へのフォールバックを必ず用意。
5. **監視・ロギング**

   * パケット内容が全て暗号化されるため、従来の L7 ロードバランサの可視性が低下。QUIC-aware プロキシや Exporter の導入が必要。
6. **サーバリソースの変化**

   * ユーザ空間実装はカーネルバイパス I/O (eBPF, io\_uring) と相性が良い一方、CPU ヘッダ処理が増大。性能チューニング観点で **sendfile() 依存が薄まる**。

> **Tip:** OSS アプリを配布する場合、`curl --http3`・`fetch('...', { mode:'cors' })` などクライアントが自動ネゴシエーションするため、基本的にサーバ設定変更だけで HTTP/3 対応が完了します。

### 8. まとめ

HTTP/3/QUIC は「ユーザ体験の高速化」だけでなく、アプリケーション開発に **接続コストの意識を減らす自由度** をもたらします。2025 年時点で HTTP/3 が HTTP/2 を上回る採⽤率に達しつつあり、今後は WebTransport や MASQUE など、**QUIC ネイティブの新プロトコル** がプラットフォーム標準として台頭する見通しです。既存サービスはフォールバック設計と監視基盤の更新を早めに検討するとよいでしょう。

> 参考文献
> - W3Techs "Usage Statistics of HTTP/3 for Websites" (2025‑05‑23) ※1, ※2  (w3techs.com, w3techs.com)
> - Wikipedia "HTTP/3" (取得 2025‑05‑24) ※3  (en.wikipedia.org)
> - ESnet "QUIC (Quick UDP Internet Connections)" (2025‑04) ※4  (fasterdata.es.net)
> - W3Techs "Usage Statistics of QUIC for Websites" (2025‑05‑23)  (w3techs.com)
> - Cloudflare Blog "Examining HTTP/3 usage one year on" (2023‑06)  (blog.cloudflare.com)