cURL不适用于nghttp2

cURL不适用于nghttp2,curl,http2,nghttp2,Curl,Http2,Nghttp2,我想将http/2与cURL一起使用。首先,我在尝试这个curl--http2时出错https://http2.akamai.com/-“不支持协议”。我安装了nghttp2,并按照描述重新安装了cURL。错误消失了,我现在可以用curl--http2获取数据了。但页面告诉我“此浏览器未启用HTTP/2”,而在chrome中或直接通过nghttp2显示“您现在正在使用HTTP/2!” 我正在使用mac os x,并通过自制软件安装了最新版本的所有依赖项。我下载的curl源代码(7.41)。对于启

我想将http/2与cURL一起使用。首先,我在尝试这个
curl--http2时出错https://http2.akamai.com/
-“不支持协议”。我安装了nghttp2,并按照描述重新安装了cURL。错误消失了,我现在可以用
curl--http2
获取数据了。但页面告诉我“此浏览器未启用HTTP/2”,而在chrome中或直接通过nghttp2显示“您现在正在使用HTTP/2!”


我正在使用mac os x,并通过自制软件安装了最新版本的所有依赖项。我下载的curl源代码(7.41)。

对于启用HTTP/2的特定浏览器,该页面可能被列为白名单,因此它返回一个静态内容,因为它无法识别curl。你可以假装自己是Chrome,例如

curl -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/41.0.742.112 Safari/534.30" --http2 https://http2.akamai.com/

您可能没有运行新构建的curl,或者您的新curl构建使用的是以前的libcurl安装。调用“
curl--version
”并确保它列出了支持的“HTTP2”(包括在特性中)

您还需要确保使用支持ALPN(用于TLS上的HTTP/2)的TLS库版本构建curl。如果使用openssl构建,则需要1.0.2版(或更高版本)

我刚刚试过,它说“你现在正在使用HTTP/2!”当我试着在它上构建curl时,它就很好了,就像这样:

$ curl --http2 -kv https://http2.akamai.com/ 

您可以查看详细的输出,您应该可以看到ALPN提供的服务以及curl和服务器同意使用的协议。

我使用一个旧摩托罗拉剃须刀上的UA访问,它工作正常:
MOT-V9mm/00.62 UP.Browser/6.2.3.4.c.1.123(GUI)MMP/2.0
不,它们都不工作。这不仅仅是这个特定页面的问题,我也在twitter和其他一些网站上尝试过。我想说的是,它与用户代理无关。我在fireFox中切换了UA,关闭了JavaScript,但它仍然兼容HTTP2。是的,HTTP2被列为一项功能。以下是完整的输出:
localhost:~svenkeinath$curl——版本curl 7.41.0(x86_64-apple-darwin14.3.0)libcurl/7.41.0 OpenSSL/0.9.8zd zlib/1.2.5 nghttp2/0.7.7协议:dict文件ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smb smbs smtps smtps telnet tftp功能:IPv6大文件NTLM NTLM_WB SSL libz HTTP2 UnixSockets
是:)谢谢!用ssl=/usr/local/cillar/openssl/1.0.2a-1/重建cURL成功了。那么……如果安装了http2 c库,cURL没有显示可用的http2协议,你该怎么办?我需要更多详细信息。我建议将您的问题放到curl库列表中,我们可以在那里解决它。