HTTP/3、またはH3は、HTTPの3番目の主要な改訂版であり、HTTP/2の後継として設計された。
HTTP/3の大きな違いはHTTPメッセージをサポートするために利用するトランスポート・プロトコルである。TCPを用いる代わりに、QUICと呼ばれるUDPの拡張バージョンを用いる。QUICは、UDP上で動作するユーザー空間の輻輳制御を用いるHTTP/3は単純にHTTP-over-QUICとして始まったがプロトコルの最新の主要な改訂版となった。QUICとHTTP/3のクライアントとサーバーのロジックをサポートする多くのオープン・ソース・ライブラリがC,C++,Python,Rust, Goなどの言語で利用可能である。Nginxを含む人気のあるWebサーバーもパッチによってHTTP/3をサポートしている。
QUICによる性能向上
ストリーム多重化とストリームごとのフロー制御をサポートしてる。ストリーム・レベルの信頼性とコネクション横断の服装制御より、HTTPの性能は劇的に向上する。輻輳情報はセッション間で共有され、並列でオブジェクトを取得する複数のコネクション間で信頼性が維持される。あるサーバーのエンド・ポイントにコネクションが存在する場合、クライアントはHTTP/3を使うことで、そのコネクションを複数の異なるURLで再利用することができる。
- ストリーム
- ストリーム多重化とは
- セッション
- コネクション間の信頼性とは
- コネクションとは
クライアントはHTTP/3を使うことで、そのコネクションを複数の異なるURLで再利用することができる。
QUIC上HTTPを動作させるHTTP/3はHTTP/2に対してさらなる性能向上を約束する。これは主にTCPと比べて、QUICがHTTPに提供する利点によるものである。ある意味でQUICは次世代のTCPと見なすことができる。
クライアントとサーバー間で追加のラウンド・トリップなしでコネクションを設定できる。
クライアントとサーバー間で以前のコネクションが確立されている場合、そのコネクションのシークレットが確立されてキャッシュされていれば、往復なしにコネクションを再確立することができる。