HTTP/3

HTTP/3 は HTTP プロトコルの第 3 メジャーバージョンです。HTTP/1.1 および HTTP/2 と同じセマンティクス(メソッド、ステータスコード、ヘッダー)を維持するため、既存のアプリケーションは同じように動作しますが、トランスポートが変更されています。TCP 上で動作する代わりに、HTTP/3 は UDP 上に構築されたモダンなトランスポートである QUIC 上で動作します。

QUIC の利点

HTTP/2 はアプリケーション層でのリクエスト多重化を解決しましたが、そのすべての ストリームは依然として単一の TCP 接続を共有しています。TCP パケットが失われると、すべての ストリームが再送信を待たなければなりません(トランスポートレベルのヘッドオブラインブロッキング)。 QUIC はストリームの多重化をトランスポート層に移し、失われたパケットはそれが属する ストリームのみを停止させ、他のストリームは流れ続けます。

主な機能

HTTP/3 は RFC 9114 で、 QUIC は RFC 9000 で、 QPACK は RFC 9204 で定義されています。

HTTP/3 はエンタープライズエディションで利用可能であり、SGC_HTTP3 定義が必要で、 デフォルトでは OpenSSL 3.5 以降が提供するネイティブ QUIC サポートを使用します。TLS の IOHandler を iohNativeTLS に設定すると、HTTP/3 は sgc QUIC エンジン上で OpenSSL なしに動作します。詳しくはOpenSSL なしで実行するを参照してください。

コンポーネント