ウェブサイトの高速化を目指す「HTTP/3」の現時点でのパフォーマンスは?
ウェブサイトを閲覧する際の通信に利用されるHTTPの次世代バージョン「HTTP/3」は、QUICと呼ばれるプロトコルを用いて通信の高速化を目指しています。2018年にHTTP/3への対応を発表したCloudflareが、HTTP/3とその前バージョンであるHTTP/2のパフォーマンスを比較しています。
Comparing HTTP/3 vs. HTTP/2 Performance
https://blog.cloudflare.com/http-3-vs-http-2/
記事作成時点では、HTTP/3は仕様策定中のプロトコルであり、多くのブラウザでも実験的なサポートにとどまっています。HTTPの歴史やHTTP/3については、下記の記事を読むとよくわかります。
ウェブを支えるHTTP通信はどのように進化しているのか - GIGAZINE
HTTP/2以前では、TCPレベルでパケットロスが発生すると、同一TCPコネクション内を通る複数のHTTP通信がすべて止まってしまうHOL blockingが通信遅延の原因として問題視されていました。GIF画像は、緑色と黄色で表されるHTTP通信のうち、黄色のパケットがロスすると後に続く緑色の通信も止まってしまうことを表しています。
HTTP/3ではこのHOL blocking問題が解消され、パケットロスが他のHTTP通信に影響しないようになります。
また、HTTP/3で使用されるTLS 1.3では、「0-RTT」と呼ばれる、暗号化通信を確立する手続き中にクライアントとサーバー間でアプリケーションデータを送受信できる機能が備わっています。0-RTTによって、サーバーとクライアントとのコネクションをより早く確立することができ、ブラウザがデータを素早く表示できるようになるとのこと。クライアントがサーバーからデータを受信するのにかかる秒数をCloudflareが調査したところ、HTTP/2を用いた場合は平均201ミリ秒かかったのに対し、HTTP/3では平均176ミリ秒と、12.4%の改善がみられたそうです。
HTTP/2がトランスポート層に従来のTCPを利用するのに対し、HTTP/3は新しいプロトコルであるQUICを利用しているため、輻輳制御などで最適化の進み具合に違いがあるとのこと。Cloudflareがページ表示にかかる時間をテストしたところ、データ容量が15KBのページでは、HTTP/2が平均458ミリ秒であるのに対し、HTTP/3が平均443ミリ秒と高速ですが……
1MBのページだと、HTTP/2が平均2.3秒、HTTP/3が平均2.33秒と、HTTP/2のほうが高速という結果に。
テスト環境ではなく、より現実に近い状態でテストするため、CloudflareはWebPagetestやCloudflareの自社ツールを利用して、「blog.cloudflare.com」を表示する際のパフォーマンスを計測することに。HTTP/2がページの表示に平均で4.322秒かかったのに対し、HTTP/3は4.434秒かかり、HTTP/2のほうが高速だという結果になりました。
Cloudflareは「私たちはHTTP/3という新しい仕様の推進を手助けできることを喜ばしく思っており、より良いパフォーマンスを得るためにHTTP/3を活用する方法を模索しています」とコメントしています。
・関連記事
ウェブを支えるHTTP通信はどのように進化しているのか - GIGAZINE
UDPベースの「HTTP-over-QUIC」が新HTTPバージョン「HTTP/3」に名称変更される - GIGAZINE
「DNSの暗号化方式」の覇権を巡る争いとは? - GIGAZINE
GoogleがHTTP接続のサイトを今後「安全でない」と警告表示することに - GIGAZINE
Let’s Encryptが発行したSSL証明書が10億個を突破したと発表、HTTPSの利用は過去3年で急速に増加 - GIGAZINE
・関連コンテンツ