HTTP/3とは何か雑にまとめる


表記はHTTP/3の形(バージョンはスラッシュの後に記述)が正しい模様。


HTTP/3 is 何

HTTP/3 = HTTP over QUICのこと。
・QUICをHTTP over QUICと勘違いする人多すぎ問題。紛らわしい。だから名称変更する。2018年11月にIETF内で合意した。
・HTTP/3へ急になるわけでもなく、全て変わるわけでもない。
・HTTP/1、HTTP/1.1、HTTP/2も引き続き使うことができる。
・GETやPOSTリクエストを送ってレスポンスがある方式は変わらない。

QUIC is 何

QUIC = UDPプロトコル。
・QUICの機能は、TCP+TLS1.3+HTTP/2と類似。
・あくまでUDPプロトコルなのでHTTPには依存しない。
・HTTP/2のときはOS等に手が入らなければならず、現行機器に大規模な変更が必要となった。今となってはそんなことは現実的ではないので、OS等に手が入らないようUDPにした。

なぜQUICが必要なのか

昨今、取り扱うデータ量がどんどん増え、データ送受信の速度アップが必須なので。そのためにはHOL問題の解消が急務。他にも速度改善できるものは取り入れる。

1.HOL問題の解消

TCPの場合に発生するもの。端的に言うと、データ送受信の際のデータは塊としてしか扱えないので、どこかでコケるとコケた後のデータが全部無駄になるという話。詳しくは次の記事等をご覧ください。

Head of Line Blocking - High Performance Web 2015

2.TCPからUDPへの変更

UDPは3-way-handshakeが必要ないので早い。これで速度改善。UDPはこれからもっと活用されてくるのだろうか。


3.TLS1.3の組み込み

TLS1.2からTLS1.3になるとRTTが格段にあがる模様。QUICでは暗号化処理の一部をTLS1.3に任せている。これで速度改善。

結論

QUICは早い。すなわちHTTP/3は早い。


まとめ

HTTP/3は早いけど、利用するにはクライアント側(Webブラウザ等)とサーバ側の両方での対応が必要。普及するにはまだまだ時間がかかるのではないか。
新しい技術がでてきた時、キャッチできるようにする。