首页 > 工具箱 > HTTP/2 检测

HTTP/2 与 TLS 协议检测

这页不是看响应头猜,而是真的跟服务器握一次手:在 ClientHello 里同时报上 h2http/1.1,看服务端 ALPN 挑了哪个——挑 h2 才算真开了 HTTP/2。之后再按 TLS 1.0 / 1.1 / 1.2 / 1.3 各握一次,试出到底支持哪些版本。

几个容易搞错的点

响应头里没有「HTTP/2」这种字段
HTTP/2 是在 TLS 握手阶段用 ALPN 扩展协商出来的,不是靠响应头声明。所以只看 Server:X-Powered-By: 判断不了,必须实际握一次手——这也是本页的做法。
装了模块不等于开了 h2
nginx 要在 listen 行加 http2(1.25.1 之后是单独的 http2 on;),Apache 要 Protocols h2 http/1.1。只 --with-http_v2_module 编译进去但没在站点里打开,检测结果依然是 http/1.1。
HTTP/2 必须跑在 TLS 上(浏览器口径)
规范里有明文的 h2c,但 Chrome、Firefox、Safari 都不支持,所以实际只能在 HTTPS 上用。没上 HTTPS 就谈不上 HTTP/2。
CDN 前置时测的是 CDN
套了 CDN 或云 WAF 的站点,这里握手的对象是边缘节点。源站是不是 h2 要绕过 CDN 单独测,可以配合 CDN 识别 先看清链路。
TLS 1.0/1.1 测出来「支持」不一定是配置写着
很多服务器没显式配 ssl_protocols,就会跟着 OpenSSL 默认走,把老版本一起开了。看到上面标黄就该去补一行配置,可用 HTTPS 配置生成 直接出配置片段。
HTTP/3 只能看通告
HTTP/3 走 QUIC(UDP 443),服务端通过 Alt-Svc 响应头告诉浏览器「我还有 h3 可用」。本页读的就是这个头,没有通告不代表一定没开,但浏览器同样发现不了。
相关工具
SSL 证书检测证书链下载OCSP 吊销查询邮件服务器检测HTTP 头对照