【问题标题】:cURL is not working with nghttp2cURL 不适用于 nghttp2
【发布时间】:2015-06-27 20:34:06
【问题描述】:

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

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

【问题讨论】:

    标签: curl http2 nghttp2


    【解决方案1】:

    您可能没有运行新构建的 curl,或者您的新 curl 构建正在使用以前的 libcurl 安装。调用“curl --version”并确保将“HTTP2”列为受支持(包含在功能中)。

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

    我刚刚在https://http2.akamai.com/ 上尝试过,它显示“您现在正在使用 HTTP/2!”当我像这样尝试我的 curl 构建时就好了:

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

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

    【讨论】:

    • 是的,HTTP2 被列为一项功能。这是完整的输出:localhost:~ svenkeinath$ curl --version 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 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Features: IPv6 Largefile NTLM NTLM_WB SSL libz HTTP2 UnixSockets
    • 是的 :) 谢谢!使用 ./configure --with-ssl=/usr/local/Cellar/openssl/1.0.2a-1/ 重建 cURL 就成功了。
    • 所以....如果您安装了 http2 c 库并且 curl 没有显示 http2 协议可用怎么办?
    • 我需要更多详细信息。我建议将您的问题放到 curl-library 列表中,我们可以在那里解决。
    【解决方案2】:

    对于启用 HTTP/2 的特定浏览器,该页面可能已列入白名单,因此它会返回静态内容,因为它无法识别 cURL。你可以set your user agent 假装你是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/
    

    【讨论】:

    • 我使用旧摩托罗拉剃须刀上的 UA 访问,它运行良好:MOT-V9mm/00.62 UP.Browser/6.2.3.4.c.1.123 (GUI) MMP/2.0
    • 不,它们都不起作用。这不仅是这个特定页面的问题 - 我还在 twitter 和其他一些页面上尝试过。
    • 我的意思是它与用户代理无关。我在 fireFox 中切换了 UA,关闭了 JavaScript,它仍然符合 HTTP2。
    猜你喜欢
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-19
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    相关资源
    最近更新 更多