在 libcurl 连接池中预创建连接

Pre-create connections in libcurl connection pool

本文关键字:连接 创建 libcurl      更新时间:2023-10-16

在启动期间,我的应用程序会执行一些昂贵的耗时初始化,然后它与多个域建立SSL连接(与其中一些域的多个连接(。通过查看 wireshak 轨迹,建立 SSL 连接最多需要 150-200 毫秒。

我可以以某种方式告诉 curl 提前建立一个到abc.com的 ssl 连接和 3 个到xyz.com的 ssl 连接吗? 我有哪些选择?我可以向这些域发出一些虚假的请求,但我宁愿避免这样做,以免用虚假请求污染服务器。作为最后的手段,我可能会对这些域执行http OPTIONS请求。

由于已建立的连接将在传输后保留在 curl 的连接缓存中一段时间,因此我建议您简单地执行一个简单的HEAD请求(使用 CURLOPT_NOBODY(或OPTIONS请求,然后在启动其余内容时启动"真实"请求并重用该连接。