【问题标题】:Why does CURLOPT_IPRESOLVE speed up my requests so drastically?为什么 CURLOPT_IPRESOLVE 如此大幅度地加快我的请求速度?
【发布时间】:2022-01-13 14:49:21
【问题描述】:

我一直在将我的一个应用程序的一部分从 AJAX 改写为 cURL,优化这个新应用程序流程的一部分是添加带有协议 CURL_IPRESOLVE_V4CURLOPT_IPRESOLVE。我在使用和不使用此协议的情况下进行了一些测试,我注意到结果大约返回给我。使用此协议时速度提高 5 倍,使其成为迄今为止我添加的最佳优化。

 curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);

但是,我对它的工作原理感到困惑。有人可以解释为什么设置CURLOPT_IPRESOLVE 选项会大大加快请求速度吗?据我所知,这与 cURL 的 DNS 解析有关。

【问题讨论】:

    标签: php curl


    【解决方案1】:

    CURLOPT_IPRESOLVE optionIPv4IPv6 或两者之间切换。

    我的猜测是您的系统在技术上能够 使用 IPv6,但实际上没有活动连接。因此,在默认配置中,curl 首先尝试通过 IPv6 连接,达到时间限制,然后回退到 IPv4。通过强制它仅通过 IPv4 进行连接,您可以跳过初始尝试,从而加快请求速度。

    另一种解释是您的系统可以通过 IPv6 连接,但通过不同的网络路由进行连接,由于某种原因,该路由比默认的 IPv4 网络慢。

    【讨论】:

    • 您认为使用 IPv4 和 IPv6 有什么性能差异吗?
    猜你喜欢
    • 1970-01-01
    • 2019-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    • 2010-11-17
    • 2020-10-01
    相关资源
    最近更新 更多