我目前正在编写单元测试,以检查是否支持http/2
。
是否有curl
个单行代码可以检查是否支持http/2
并输出易于解析的响应?
答案 0 :(得分:7)
支持HTTP / 2:
$ curl -sI https://curl.haxx.se -o/dev/null -w '%{http_version}\n'
2
不支持HTTP / 2(在这种情况下,服务于1.1):
$ curl -sI http://curl.haxx.se -o/dev/null -w '%{http_version}\n'
1.1
(要使此命令行正常运行,必须使用curl 7.50.0或更高版本)
答案 1 :(得分:1)
在这里您可以找到list of Tools for debugging, testing and using HTTP/2。
在命令行中最简单的一种可能是:
void *thr_func(void *arg){
thread_data_t *data = (thread_data_t *)arg;
...
}
但这需要$ is-http2 www.cloudflare.com
对于使用npm install -g is-http2-cli
进行测试,您可能需要使用nghttp库进行编译,在macOS中,可以通过使用curl
来进行编译,您可以使用:
brew
然后您可以使用@ daniel-stenberg在他的答案中建议的内容
$ brew install curl --with-nghttp2
如果支持http2,您将在其中得到2。
答案 2 :(得分:1)
运行
curl --version
并在“功能”列表中查找HTTP2
答案 3 :(得分:0)
我用过
curl -kvso /dev/null --http2 https://app.domain.com:443
返回了
...
> GET / HTTP/2
...
< HTTP/2 302
...
这不是检查HTTP2是否受支持,而是检查HTTP2是否真正起作用。