curl 在 mac 上不支持 http2

Posted

技术标签:

【中文标题】curl 在 mac 上不支持 http2【英文标题】:curl does not support http2 on mac 【发布时间】:2015-10-20 21:55:35 【问题描述】:

我有最新版本的 curl,但仍然没有看到 http2 显示为一项功能。我已按照相关问题的步骤进行操作,但仍然不走运。

$ /usr/local/Cellar/curl/7.43.0/bin/curl -V
curl 7.43.0 (x86_64-apple-darwin14.3.0) libcurl/7.43.0 SecureTransport zlib/1.2.5
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 UnixSockets

有什么想法吗?

【问题讨论】:

【参考方案1】:

brew info curl 列出了启用该功能所需的标志。

brew reinstall curl --with-openssl --with-nghttp2 将更新您的安装。

【讨论】:

@MarkFine :如果它解决了问题,你能用绿色检查来验证那个答案吗?【参考方案2】:

Homebrew 团队最近 removed all options for the curl formula,但 curl-openssl 公式启用了 HTTP/2。

brew install curl-openssl

【讨论】:

【参考方案3】:

默认情况下,curl 不与nghttp2 一起编译。作为explained in this article,您需要通过--with-nghttp2 标志重新编译它并链接它(以替换Mac OS X 附带的原始curl

# install cURL with nghttp2 support
$  brew install curl --with-nghttp2

# link the formula to replace the system cURL
$  brew link curl --force

# now reload the shell

【讨论】:

覆盖系统 curl 的任何问题?

以上是关于curl 在 mac 上不支持 http2的主要内容,如果未能解决你的问题,请参考以下文章

将 --http2.0 选项与 curl 7.33.0 一起使用会提供不受支持的协议

如何启用curl命令HTTP2支持

如何启用curl命令HTTP2支持

支持HTTP2的cURL——基于Alpine的最小化Docker镜像

yum升级curl支持http2测试

关于 Web 浏览器中的 gRPC 支持以及它们如何利用 HTTP2 的问题