HTTP/2 と比較した HTTP/3
HTTP/3 は、自身でストリームを処理するトランスポートプロトコルである QUIC に合わせた設計になっています。
HTTP/2 は TCP を前提とした設計のため、HTTP レイヤーでストリームを処理します。
類似点
この2つのプロトコルは、クライアントに対して事実上同じ機能を提供します。
どちらのプロトコルも、サーバープッシュのサポートを提供します。
どちらのプロトコルもヘッダー圧縮が提供され、QPACK と HPACK は設計上似ています。
どちらのプロトコルも、1つの接続でストリームによる多重化が提供されます。
相違点
差異は主に詳細にあり、HTTP/3 が QUIC を利用することによるものです。
TCP Fast Open と TLS では、一般的にあまりデータ量を送信せず、しばしば問題を引き起こす一方で、HTTP/3 は QUIC の 0-RTT ハンドシェイクのおかげで、early data のサポートがあります。
HTTP/3 は QUIC のおかげで TCP と TLS の組み合わせより高速なハンドシェイクを実現します。
HTTP/3 では全て暗号化された安全な通信です。HTTP/2 は、インターネット上においては稀なことであるにせよ、 HTTPS なしで実装することも可能です。
HTTP/2 では TLS ハンドシェイクを ALPN 拡張 を用いて、直接ネゴシエーションが可能です。一方で、HTTP/3 は 事実上、QUIC 上で動くため、クライアントにこの内容を知らせるため
Alt-Svc:
ヘッダーレスポンス が最初に必要です。HTTP/3 は優先度制御を提供しません。HTTP/3 において採用予定だった HTTP/2 の優先度制御に対するアプローチは、複雑すぎるかあるいは紛れもない失敗とみなされており、より単純な仕組みを作る取り組みが行われています。現在予定されているより単純な仕組みは、HTTP/2にバックポートし、HTTP/2の拡張仕様の優先度制御を利用することです。
Last updated