🌐

サイトがHTTP/3に対応しているかローカルで確認する方法

に公開

はじめに

この記事では、特定のWebサイトがHTTP/3に対応しているかどうかをローカル環境で確認する方法をご紹介します。

HTTP/3とは(概要)

HTTP/3は、従来のHTTP/2の課題を解決するために策定された次世代のWeb通信プロトコルで、Googleの開発したQUICをベースとしています。
主な特徴は以下の通りです。

  1. TCPではなくUDPで通信するため、パケットロスによる遅延が発生しにくい
  2. 接続開始時のハンドシェイクが高速
  3. 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通信に対応しているかローカルで確認する方法を紹介しました。
ぜひ、サイト構築や運用時のチェックに活用してみてください。

参考リンク

jig.jp Engineers' Blog

Discussion