【发布时间】:2018-10-23 02:10:34
【问题描述】:
libcurl 缓存连接并将它们重用于连续的请求。
假设我有 4 个到 example.com 的连接正在进行,我需要进行第 5 个连接。 Libcurl 将尝试与example.com 建立新的第五个连接。
如果在为example.com DNS 结果创建第 5 个连接时 TTL 过期,会发生什么情况?我想 libcurl 不会缓存 DNS 结果,只是查询操作系统解析器(我不使用 ares),如果 example.com 在缓存中过期,则会发出新的 DNS 请求。
现在,假设对example.com 的原始4 个请求被解析为对1.1.1.1 的请求,而第5 个请求被解析为5.5.5.5。
- libcurl 中的内部连接缓存会发生什么?
- 当这 4 个请求完成时,libcurl 是否“丢弃”并关闭与 1.1.1.1 的连接?
- 如果我也有对
something.com的请求也解析为1.1.1.1ip,该怎么办?
如果重要,我使用 curl mutli 接口。
【问题讨论】: