在本站中
本站是开源的,仓库在 yuxuetr/rustineverything。它的出站 HTTP 全部经过 reqwest,版本是 0.12.28,不是本卷锁定的 0.13.5。这一部分只有一页,看本站的代码怎么用 reqwest、编进来的 feature 让它走了哪条连接路径,以及把它换到 0.13.5 时编译器和运行时各会报告什么。
站点代码只读不改:统计和编译都在导出的拷贝和镜像 crate 上做。本站已经被另外两卷从各自的角度讲过,这里不再重复:
- hyper 卷的本站的出站客户端讲超时为什么都要自己设、每次新建
Client让连接池落空、测试为什么一律.no_proxy(),都有实测; - rustls 卷的本站的 rustls讲 reqwest 两种 TLS 都编进来时为什么选 native-tls,以及两条路发出的 ClientHello。
- 本站的 reqwest:六处建
Client的代码(OAuth、两个 LLM 客户端、支付、论文采集的两个)各设了什么超时、请求头是谁加的、响应怎么读;cargo tree列出的 16 个 feature 和它们的来源,默认 TLS 为什么是 native-tls、为什么只说 HTTP/1.1;升级到 0.13.5 时 cargo 先报rustls-tls不存在,改名以后.form()报 E0599,补上formfeature 就能编过;本机实测 HTTPS 从 TLS 1.2 加 HTTP/1.1 变成 TLS 1.3 加 HTTP/2,依赖图里同时出现两个 reqwest,native-tls 退出,rustls 同时带上 ring 和 aws-lc-rs。
flowchart TB code["本站六处 Client"] --> r12["reqwest 0.12.28"] r12 --> nt["native-tls"] nt --> h1["HTTP/1.1"] code -. 升级 .-> r13["reqwest 0.13.5"] r13 --> rl["rustls aws-lc-rs"] rl --> h2["ALPN h2"]
💬 关联讨论
发起讨论加载中...