2022年6月、HTTP/3を正式に定義したRFCを含む一連のHTTP関連インターネット標準が公開された後、私たちは「進化したHTTP RFC:HTTP使用傾向に対するCloudflareの見解」というレポートを公開しました。それから1年、RFCが最初の誕生日を迎えるにあたり、私たちはこの1年でこれらの傾向がどのように進化したかを振り返ってみたいと考えました。
前回の投稿では、2021年5月から2022年5月にかけてCloudflareのネットワーク上で観測されたHTTP/1.1、HTTP/2、HTTP/3の利用動向を、バージョン別、ブラウザファミリー別、検索エンジンインデックス別、ソーシャルメディアボット別にレビューしました。当時、ブラウザからのトラフィックは圧倒的にHTTP/2が使用されていましたが、HTTP/3の使用は増加の兆しを見せていました。検索ボットとソーシャルボットは、HTTP/1.1とHTTP/2の間で好みが混在している一方、HTTP/3の使用はほとんど見られませんでした。
2022年5月から2023年5月にかけてブラウザで取得されたコンテンツにおけるHTTP/3の利用は増加傾向にありますが、検索エンジンのインデックスとソーシャルメディアのボットは、Webのコアプロトコルの最新バージョンを事実上無視し続けていることがわかりました。(とはいえ、HTTP/3の利点はほとんどがユーザーに向けたものであり、非同期にコンテンツをクロールしインデックスするように設計されたボットにはほぼメリットがありません。ここに自動化されたユーザーエージェント全体での使用率が低い理由があると考えられます)。また、APIトラフィック全体におけるHTTP/3の使用率はまだ低いものの、1年間で倍増しています。HTTP/3のサポートは、Cloudflareの無料サービスを使用しているゾーンではデフォルトで有効になっていますが、有料のお客様はオプションを使用して有効にすることができます。
HTTP/1.1とHTTP/2は、トランスポート層にTCPを使用してTLSによるセキュリティを追加します。HTTP/3は、QUICがトランスポート層とセキュリティの両方を担います。トランスポート層が異なるため、ユーザーエージェントは通常、HTTP/3を試す前に、オリジンがHTTP/3を使用してアクセス可能であることを知る必要があります。それを知る方法の一つはHTTP Alternative Services(HTTP代替サービス)によってサーバーから返される、サポートされているアプリケーション層のプロトコルネゴシエーション識別子(ALPN ID)のリストを含むAlt-Svc応答ヘッダです。もう一つの方法はHTTPSレコードタイプで、クライアントはDNSに問い合わせてサポートされているALPN IDを知ることができます。HTTP/3のALPN IDは「h3」ですが、仕様の開発と繰り返しの過程で、私たちは特定のドラフトバージョンを識別するための接尾辞を追加しました(例えば、ドラフト29の識別子は「h3-29」です)。幅広いクライアントの互換性を維持するため、Cloudflareは「h3」と「h3-29」の両方をアドバタイズしていました。しかし、ドラフト29は約3年前に公開され、クライアントは最終RFCのサポートに追いつきました。2023年5月下旬現在、CloudflareはHTTP/3が有効なゾーンに対する「h3-29」のアドバタイズを終了し、各HTTPレスポンスまたはDNSレコードに含まれていた「h3-29」の数バイト分を節約できるようになりました。ブラウザとWebサーバーは通常、利用可能な最も高いバージョンのHTTPを自動的にネゴシエートするため、HTTP/3はHTTP/2よりも優先されます。
以下のセクションでは、分析を「人間の可能性が高い」トラフィックに限定するため、Cloudflareのボットスコアを基に「自動化された可能性の高い」トラフィックと「自動化された」トラフィックを、デスクトップおよびモバイルブラウザの分析では除外していますが、検索エンジンとソーシャルメディアのボット分析にはこれらを含めています。また、以下のHTTPリクエストまたはHTTPトラフィックへの参照には、HTTPとHTTPSの両方で行われたリクエストが含まれます。
HTTPバージョン別リクエストの全体的な分布
CloudflareへのグローバルなWebトラフィックを1日単位で集計することで、1年間のHTTP/1.1、HTTP/2、HTTP/3の利用傾向を観察することができます。HTTP/1.1を使用したトラフィックの割合は、5月から9月末にかけて8%から7%に減少しましたが、10月には11%以上の増加を見せました。年明けから1月にかけてもこの上昇は続きましたが、2023年5月には9%まで低下しました。興味深いことに、平日と週末のトラフィックパターンは、10月の増加後に顕著になり、その後の6か月間維持しました。HTTP/2のリクエストの割合は、2022年5月に約68%でスタートしましたが、6月にはわずかに減少を見せました。その後、その割合は大きく変化することなく、64%にわずかに届きませんでした。HTTP/2では、平日と週末の明確なパターンは見られませんでした。2022年5月に23%強だったHTTP/3のリクエストの割合は、8月から9月にかけて30%強まで増加しましたが、11月には約26%まで低下しました。その後、わずかな減少と上昇を経て、調査期間を28%で終了しました。(注:このグラフは、6月上旬のグラフ作成時にデータ保持の制限が発生したため、5月下旬から開始しています)
HTTPバージョン別API呼び出しの分布
APIトラフィックはCloudflareのリクエスト量のかなりの部分を占めていますが、HTTP/3を介して行われるリクエストはごく一部です。APIリクエストの約半分はHTTP/1.1で行われ、さらに3分の1はHTTP/2で行われています。しかし、APIに対するHTTP/3の使用率は、2022年5月の約6%から2023年5月には12%以上に増加しています。HTTP/3のトラフィックの割合が低い原因として、curlのような主要ツールでHTTP/3のサポートがまだ「実験的」とみなされていることが一因と考えられます。将来この状況が変化し、そのようなツールでHTTP/3が市民権を得た場合、私たちはAPIだけでなく全体的にもHTTP/3の利用が加速すると期待しています。
HTTPバージョン別軽減されたリクエストの分布
上記の分析では、Cloudflareに送信されたすべてのHTTPリクエストについて考察していますが、悪意のある可能性のあるトラフィックによるHTTPバージョンの使用状況も調べてみたいと考え、Cloudflareのアプリケーションセキュリティソリューションの1つによって軽減されたリクエストだけを抽出してみました。上のグラフを見ると、軽減されたリクエストの大半がHTTP/1.1とHTTP/2のもので、HTTP/3のものは概ね5%未満であることがわかります。また、軽減されたリクエストは、HTTP/1.1のものが最も多く、8月上旬から11月下旬にかけてはHTTP/2の割合の方が大きいことが分かります。これらの観察から、攻撃者は古いバージョンのプロトコルで十分であり、労力を投じてツールをアップグレードしてHTTPの最新バージョンを利用する必要はないと考えているようです。(注:このグラフは、2023年6月上旬のグラフ作成時にデータ保持の制限が発生したため、2022年5月下旬から開始しています)
ブラウザ別HTTP/3の使用(デスクトップ)
昨年お伝えしたように、主要ブラウザの安定版リリースでHTTP/3がサポートされたのは、Google ChromeとMicrosoft Edgeが2020年11月、Mozilla Firefoxが2021年4月です。また、AppleのSafariでは、HTTP/3のサポートは、製品リリースの「Experimental Features」開発者メニューで有効化する必要があることも指摘しました。ですが、Safariの最新のリリースでは、この手順は不要となり、現在HTTP/3はネイティブにサポートされています。
ブラウザ別のリクエストの割合を見ると、ChromeはHTTP/3のリクエスト量の約80%を占めていましたが、Safariの継続的な成長により、2023年5月には約74%に減少しました。1年前、CloudflareにおけるHTTP/3トラフィックのSafariの割合は1%未満でしたが、2023年5月には7%近くまで増加しました。恐らくこれは、サポートが実験段階から製品移行した結果であると推察できます。
グラフから再度Chromeを除外すると、他のブラウザの傾向がより明確になります。上述の通り、Safariはこの1年で著しい成長を遂げ、Edgeは2022年6月に10%弱から11%強に上昇しました。年明けまでその水準で推移しましたが、その後数か月は徐々に10%を割り込みました。Firefoxは約10%から9%弱へとわずかに減少し、Internet ExplorerからのHTTP/3トラフィックはほぼゼロになりました。
昨年の投稿で行ったように、私たちはまた、各主要ブラウザのHTTPバージョンの割合が昨年どのように変化したかを見てみたいと思いました。2021年5月から2022年5月にかけて顕著な変化が見られた昨年の投稿とは対照的に、過去1年間のHTTP/2とHTTP/3は相対的な安定性を見せています。
主要なデスクトップブラウザのプロトコルバージョン別のリクエストの割合を見ると、10月下旬にすべてのブラウザでHTTP/1.1の割合が増加しています。さらに分析を進めると、この増加は、いくつかの大規模なお客様のゾーンでHTTP/1.1のリクエスト量が大幅に増加したためであることがわかりますが、古いバージョンのHTTPを使用するトラフィックが流入した理由は不明です。HTTP/2が依然として主要なブラウザがコンテンツリクエストに使用するプロトコルの主流であることは明白で、ChromeとEdgeではリクエスト量の50~55%、Firefoxでは~60%を一貫して占めています。しかしSafariでは、HTTP/3の利用が増加したことにより、HTTP/2の割合は2022年5月の約95%から1年後には約75%に低下しました。
SafariにおけるHTTP/3の割合は、1年間で3%未満から18%近くまで増加した一方で、他のブラウザにおける割合はより安定しており、ChromeとEdgeは40%前後、Firefoxは35%前後で推移し、どちらも平日と週末のトラフィックパターンが顕著でした。(このパターンが最も顕著なのはEdgeです)。このようなパターンは2022年後半のSafariでより顕著になりますが、それでもまだほとんど見られません。
ブラウザ別HTTP/3の使用(モバイル)
Cloudflareへのリクエスト量の半分以上をモバイルデバイスが占めており、Chrome Mobileが全リクエストの25%以上を生成し、Mobile Safariは10%以上を占めています。このことから、これら2つの主要モバイルプラットフォームにおけるHTTP/3の使用状況を調査することにしました。
Chrome MobileとChrome Mobile Webview(アプリケーションがWeb のコンテンツを表示するために使用できるChromeの埋め込み可能なバージョン)を見てみると、HTTP/1.1の使用量はごくわずかで、リクエストの5%未満に留まっています。HTTP/2の使用率は、5月から9月中旬にかけて60%から55%弱まで低下しましたが、その後60%近くまで回復し、残りの期間はほぼ横ばいかわずかに低下しました。これを補完するように、HTTP/3トラフィックは37%から45%に増加し、9月中旬には40%をわずかに割り込み、5月までその水準で推移しました。利用パターンは、デスクトップのChromeで見られるパターンと非常によく似ていますが、後者には平日と週末の明確なトラフィックパターンがありません。
おそらく驚くことではありませんが、Mobile SafariとMobile Safari Webviewの使用パターンは、デスクトップのSafariの使用パターンとほぼ同じです。HTTP/1.1の割合は10月に増加し、HTTP/3は3%未満から18%近くまで大きく伸びています。
検索インデックス作成ボット
検索エンジンのクローラー/ボットによるHTTPバージョンごとの利用状況を調べてみると、昨年の傾向が続いており、HTTP/3の利用はほとんどないことがわかります(前述の通り、HTTP/3はブラウザのユースケースに最適化されているため、これはある程度予想されたことです)。BingとBaiduのグラフは、調査中の4月のデータに異常があったため、2023年4月1日までの期間に切り詰めています。
GoogleBotは引き続きHTTP/1.1に依存しており、リクエスト量の55~60%を占めています。HTTP/3の使用率がわずかに伸び、3月には2%弱でピークに達したものの、残りはHTTP/2でした。
2023年1月までは、MicrosoftのBingBotからのリクエストの約85%がHTTP/2で行われていましたが、1月下旬には80%近くまで減少しました。HTTP/3の使用はごくわずかで、残りのリクエストはHTTP/1.1で行われました。
米国外に拠点を置く検索エンジンのインデックス作成ボットを見ると、ロシアのYandexBotはほぼHTTP/1.1を使用しており、HTTP/2の使用率は概ね1%前後ですが、8月下旬から11月中旬にかけて使用率が上昇した時期もありました。この増加の最終的な原因は不明です。HTTP/3では特筆するリクエスト量は見られませんでした。中国の検索エンジンであるBaiduが使用しているインデックス作成ボットもHTTP/1.1を強く好むようで、概ね85%以上のリクエストに使用されています。ただし、HTTP/2のリクエストの割合は、2022年7月、11月、12月、および2023年1月に一時的に60%を超える数回のスパイクを見せ、さらに数回の30%台のスパイクも観測されています。繰り返しになりますが、このスパイク的な動作の原因は不明です。BaiduBotによるHTTP/3の使用もほぼ観測されていません。
ソーシャルメディアボット
上記のBingとBaiduと同様に、以下のグラフも4月1日までの期間に切り詰めています。
過去1年間Facebookがサイトのクローリングとインデックス作成にHTTP/3を利用した割合は前年と同様、ほぼゼロのままでした。HTTP/1.1はリクエストの60%未満で始まり、5月下旬の一時的なピークを除いて、年間を通して着実に減少し、2023年4月には約30%まで減少しました。それに伴い、HTTP/2の使用率は2022年5月の40%強から2023年4月には70%強に増加しました。このHTTP/1.1離れの動きは、Metaのエンジニアらにとって彼らのインフラストラクチャのHTTP使用において予想される緩やかな変化であり、彼らのインフラストラクチャからHTTP/1.1を完全に削除するための取り組みが徐々に進んでいることが確認できるものとなっています。
昨年のブログ記事では、「TwitterBotはHTTP/2をリクエストの75〜80%と明確に好み、残りのリクエストはHTTP/1.1を使用」と言う内容を指摘しました。この傾向は10月初旬まで続き、その後は徐々に低下を見せ、2023年4月までにHTTP/2の使用率は60%強まで漸減しました。2022年5月下旬の1週間にわたるHTTP/2の低下とHTTP/1.1の急増の原因は不明です。また、昨年私たちが指摘したように、TwitterBotのHTTP/3の使用は依然として存在しません。
FacebookやTwitterのサイトクローリングボットとは対照的に、LinkedInのボットによるリクエストのうち、HTTP/3が占める割合は顕著に増加しており、2022年5月の1%弱から2023年4月には10%強に増加しています。昨年、LinkedInのHTTP/2利用が2022年3月に開始し、リクエストの約5%にまで増加したことを指摘しました。このバージョンの使用率は、今年の調査期間中に徐々に増加し、15%に達しましたが、その伸びは、スムーズで一貫した増加とは対照的に、特に不規則でスパイクを含むものでした。HTTP/1.1は、2022年5月の約95%から2023年4月には75%に減少したものの、依然としてLinkedInのボットに主要なプロトコルとして使用されています。
まとめ
全体として、喜ばしいことに、ブラウザを介したトラフィックの消費におけるHTTP/3の利用が全体的に増加しています。また、curlなどの主要ツールが本格的にサポートされるようになり、APIを使用した通信に積極的に利用されるようになれば、さらに大きく成長する機会があると認識しています。検索エンジンとソーシャルメディアのボットによるHTTP/3の利用がほとんどないことは残念ですが、その理由としてWebの基本であるこのプロトコルの最新バージョンを使用する即効性のある利点が、非同期の自動コンテンツ検索には完全に適用できないことも認識しています。
これらのトレンドやその他のトレンドについては、Cloudflare Radar(https://radar.cloudflare.com/adoption-and-usageの「Adoption and Usage」セクション)、Twitter(@CloudflareRadar)、Mastodon(https://cloudflare.social/@radar)をフォローしてください。