卷曲:一行测试 http/2 支持

Curl: one-liner to test http/2 support

我目前正在编写单元测试以检查 http/2 是否受支持。

是否有 curl 一行检查是否支持 http/2 并输出易于解析的响应?

HTTP/2支持:

$ curl -sI https://curl.se -o/dev/null -w '%{http_version}\n'
2

HTTP/2 不受支持(在这种情况下改为提供 1.1):

$ curl -sI http://curl.se -o/dev/null -w '%{http_version}\n'
1.1

(此命令行需要 curl 7.50.0 或更高版本)

在这里你可以找到 list of Tools for debugging, testing and using HTTP/2.

可能最简单的命令行是:

$ is-http2 www.cloudflare.com

但这需要npm install -g is-http2-cli

要使用 curl 进行测试,您可能需要使用 nghttp 库对其进行编译,在 macOS 中,这可以通过使用 brew 来完成,您可以使用:

$ brew install curl --with-nghttp2

然后您可以使用@daniel-stenberg 在他的回答中建议的内容

$ curl -sI https://curl.haxx.se -o/dev/null -w '%{http_version}\n'

如果支持 http2,您将在此处获得 2。

运行

curl --version

并在功能列表中查找 HTTP2

我用了

curl -kvso /dev/null --http2 https://app.domain.com:443

返回

...
> GET / HTTP/2
...
< HTTP/2 302
...

这不是检查 HTTP2 是否受支持,而是检查 HTTP2 是否真的有效。