HTTP/2
启用 HTTP/2
默认使用 HTTP/1.1。通过持久 Client 开启 HTTP/2:
import req
def main() raises:
var owner = req.Client(http2=True)
with owner.context() as client:
var response = client.get("https://example.com")
response.raise_for_status()
print(response.http_version)
http1=True, http2=True 时,HTTPS 通过 ALPN 协商 HTTP/2,也可以回退到 HTTP/1.1。
设置 http1=False, http2=True 可只使用 HTTP/2。两者都关闭会抛出 InvalidRequest。
模块级函数使用 HTTP/1.1;协议选择通过 Client 或 HTTPTransport 配置。
原生 libcurl 必须支持 HTTP/2;仅 HTTP/2 模式还要求 libcurl 8.10 或更新版本。
不满足要求时,创建客户端会抛出 InvalidRequest。
支持连接复用和多个重叠的 HTTP/2 响应流,Client 仍用于单线程场景。
通过 Limits 管理物理连接数,通过 Timeout.pool 限制等待流容量的时间。