工具简介
HTTP/2 检测工具,提供了检查指定网站(或服务器)是否支持 HTTP/2 协议的功能。HTTP/2 协议是超文本传输协议 Hyper Text Transfer Protocol 的 2.0 版本,是下一代 HTTP 协议。
以本站域名 dute.org 为例,检测结果如下:
从上图可以得知,本站 dute.org 是支持 HTTP/2 协议的。
为了进一步验证结果,我们打开电脑终端(或命令行环境),使用 curl 工具再测试一次,结果如下(curl
命令的参数 -I
表示仅获取响应头部信息):
$ curl -I https://www.dute.org
HTTP/2 200
server: nginx
date: Tue, 03 Aug 2021 05:38:39 GMT
content-type: text/html; charset=UTF-8
vary: Accept-Encoding
set-cookie: _dtool=6j3scfr3fh0f9pr4k2hdqbaraers2pja; expires=Fri, 06-Aug-2021 05:38:39 GMT; Max-Age=259200; path=/; HttpOnly
last-modified: Fri, 30 Jul 2021 03:30:01 GMT
expires: Tue, 03 Aug 2021 07:38:39 GMT
cache-control: public, max-age=7200
pragma: cache
测试结果和本工具检测出来的结果一致。
网站如何启用 HTTP/2 协议
这里以 Nginx 为例,来说明网站如何开启 HTTP/2。
首先,要启用 HTTP/2,要求 Nginx 版本在 1.9 以上,并且需要 http_v2_module
模块。如果没有,请重新编译 Nginx。
编译命令如下:
./configure --prefix=/opt/nginx --with-http_ssl_module --with-http_v2_module
然后,修改 Nginx 配置。在 server
块中的 listen
语句后面,添加 http2
,如下所示:
server {
listen 443 ssl http2;
...
}
最后,重新加载 Nginx 配置:
nginx -s reload
国内大厂网站对 HTTP/2 的支持程度
测试了国内几个大厂的网站,对 HTTP/2 的支持程度似乎和我想象的不一样。我本来想着大厂嘛,应该对 HTTP/2 早有支持,但测试结果出乎意料。我们一起来看看。
特别说明:
以下对各网站的测试,时间是在 2021 年 8 月;随着时间的推移,部分不支持 HTTP/2.0 协议的网站,可能会在今后某个时间就提供了对 HTTP 2.0 的支持。
1、百度
百度不支持 HTTP/2 协议:
2、淘宝
淘宝支持 HTTP/2 协议:
3、天猫
天猫支持 HTTP/2 协议:
4、京东
京东不支持 HTTP/2 协议(这个有点意外):
5、腾讯 QQ
qq.com 不支持 HTTP/2 协议:
6、微博
微博不支持 HTTP/2 协议:
7、Google
Google.com???压根儿就不能访问好吧!
好了,现在你可以测试下你的网站是否支持 HTTP/2 协议。
HTTP/2 简介
HTTP/2 是 HTTP 协议自 1999 年 HTTP 1.1 发布后的首个更新,主要基于 SPDY 协议。由互联网工程任务组(IETF)的 Hypertext Transfer Protocol Bis(httpbis)工作小组进行开发。该组织于 2014 年 12 月将 HTTP/2 标准提议递交至 IESG 进行讨论,并于 2015 年 2 月 17 日被批准。HTTP/2 标准于 2015 年 5 月以 RFC 7540 正式发表。
HTTP/2 的主要变化(特点)如下:
- 二进制分帧:采用二进制格式传输数据,而非文本格式,二进制格式在协议的解析和优化扩展上带来更多的优势和可能
- 服务器推送:服务端能够更快的把资源推送给客户端,不需要客户端解析 HTML 再发送这些请求,当客户端需要的时候,它已经在客户端了
- 多路复用:支持多个请求通过一个 TCP 连接并发完成(虽然 HTTP 1.1 通过 pipeline 也能并发请求,但是多个请求之间的响应会被阻塞的,所以 pipeline 至今也没有被普及应用,而 http2.0 做到了真正的并发请求,同时,流还支持优先级和流量控制)
- 头部压缩:对消息头进行压缩传输,能够节省消息头占用的网络的流量,而 HTTP 1.1 每次请求,都会携带大量冗余头信息,浪费了很多带宽资源,头部压缩很好地解决了该问题
HTTP/2 的优势:
- 提升网站访问速度
- 降低服务器压力
- 部分替代异步加载的使用
- 保护网站安全
关于 HTTP/2 协议的基本情况就介绍这么多,如需深入了解 HTTP/2,可自行查阅资料。