🌐
サイトがHTTP/3に対応しているかローカルで確認する方法
はじめに
この記事では、特定のWebサイトがHTTP/3に対応しているかどうかをローカル環境で確認する方法をご紹介します。
HTTP/3とは(概要)
HTTP/3は、従来のHTTP/2の課題を解決するために策定された次世代のWeb通信プロトコルで、Googleの開発したQUICをベースとしています。
主な特徴は以下の通りです。
- TCPではなくUDPで通信するため、パケットロスによる遅延が発生しにくい
- 接続開始時のハンドシェイクが高速
- TLS 1.3を標準で内蔵しており、通信が常に暗号化される
W3Techsの調査では、2025年7月1日時点で世界全体のWebサイトのうち35%がHTTP/3に対応しており、今後ますます普及率が上昇していくと考えられます。
HTTP/3に対応しているか確認する方法
quiche版curlを使います。
通常のcurlではHTTP/3通信に対応していませんが、Cloudflareが提供しているQUICライブラリ「quiche」をcurlに組み込むことで、HTTP/3での通信確認が可能になります。
ここでは、macOSでのインストール方法を紹介します。LinuxやWindows環境をお使いの方は、curl公式ドキュメントを参考にしてください。
インストール手順
# Cloudflare の Homebrew タップ(リポジトリ)を追加する
brew tap cloudflare/homebrew-cloudflare
# インストール済みの tap(外部リポジトリ)の情報を表示する
brew tap-info --installed
# 現在リンクされている Homebrew の curl パッケージのリンクを解除する
brew unlink curl
# Homebrew 経由でインストールされた curl を強制的にアンインストールする
brew uninstall --force curl
# Cloudflare が提供する特別なバージョンの curl をインストールする
brew install cloudflare/cloudflare/curl
# シェルの設定ファイル(zsh の設定ファイル)に Cloudflare curl のパスを追加する
echo 'export PATH="/opt/homebrew/opt/curl/bin:$PATH"' >> ~/.zshrc
# 設定ファイルを再読み込みして、PATH の変更を即時に反映させる
source ~/.zshrc
# 現在の curl のバージョンを確認し、Features: にhttp3が含まれていればOK
curl --version
確認方法
以下のコマンドで、対象サイトがHTTP/3に対応しているかどうかを確認できます。
出力に「HTTP/3」と表示されていれば、そのサイトはHTTP/3に対応しています。逆に「HTTP/2」と表示されている場合は、HTTP/3には対応していません。
# -I: ステータス行とヘッダー情報だけを出力する
# --http3: HTTP3通信を使う
curl -I --http3 [URL]
出力例
-
https://example.com/
: HTTP/3 対応(2025/07/07 時点)
$ curl -I --http3 https://example.com/
HTTP/3 200 # <- HTTP/3で通信している = HTTP/3対応
content-type: text/html
(省略)
-
https://jp.ubuntu.com/
: HTTP/3 非対応(2025/07/07 時点)
$ curl -I --http3 https://jp.ubuntu.com/
HTTP/2 200 # <- HTTP/2で通信している = HTTP/3非対応
server: nginx/1.14.0 (Ubuntu)
(省略)
まとめ
ここまで、サイトがHTTP/3通信に対応しているかローカルで確認する方法を紹介しました。
ぜひ、サイト構築や運用時のチェックに活用してみてください。
Discussion