You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

libcurl CURLOPT_HTTP_VERSION参数说明及HTTP/2非TLS连接相关问题

libcurl CURLOPT_HTTP_VERSION 选项说明

libcurl 提供 CURLOPT_HTTP_VERSION 选项,支持以下参数:

  • CURL_HTTP_VERSION_2TLS:

仅尝试在TLS(HTTPS)连接上使用HTTP 2协议。

  • CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE:

使用HTTP/2发起非TLS的HTTP请求。


问题解答

HTTP 2是否会在TLS连接上自动启用?

不会。libcurl默认不会自动在TLS连接上启用HTTP/2,默认优先使用HTTP/1.1协议。如果需要在TLS连接上尝试使用HTTP/2,需要手动将CURLOPT_HTTP_VERSION参数设置为CURL_HTTP_VERSION_2TLS,此时libcurl会在TLS握手阶段协商HTTP/2版本,协商成功则使用HTTP/2,协商失败会自动回退到HTTP/1.1。

HTTP 2是否支持在未加密的公开连接上运行?

HTTP/2协议标准本身支持在未加密的明文TCP连接上运行(该模式也称为h2c),但目前绝大多数主流浏览器都不支持h2c模式,仅支持基于TLS加密的HTTP/2。
如果使用libcurl作为客户端,且明确知晓目标服务端支持明文HTTP/2,可以通过设置CURLOPT_HTTP_VERSION参数为CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE,直接向未加密的HTTP连接发起HTTP/2请求。


内容的提问来源于stack exchange,提问作者Optimus1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:45:03