为什么Curl比网络浏览器慢?

时间:2010-09-08 16:35:34

标签: php windows curl windows-xp

我正在使用this class向网站发出一个GET和另一个POST请求(第一个请求是设置cookie)。我正在使用wampserver dot com的wamp在带有virtualbox的Win XP虚拟机中进行测试。 2个请求需要10到18秒(有卷曲),但是如果我直接通过同一个虚拟机中的webbrowser发出这些请求,网站只需几秒钟即可加载,并且它会检索所有图像,css等。 / p>

什么可能导致卷曲工作这么慢?有没有办法解决它?

5 个答案:

答案 0 :(得分:3)

Curl可能正在尝试将服务器反向DNS,并且因为它不能挂起那里等待超时。

如果超时是由IPV6给出的,您可以尝试CURL_IPRESOLVE_V4完全绕过它。这实际上取决于您的机器配置,而且更像是服务器故障。

答案 1 :(得分:2)

检查您的网络服务器日志,并尝试查找来自普通网络浏览器的请求与来自curl的请求之间的任何差异

答案 2 :(得分:2)

我使用curl命令遇到了同样的问题。

如上所述 - 强制ipv4只有dns查找修复它。

curl -4 $url#nice and fast

(我的主机文件中已经有::1 localhost - 但这没有帮助。)

答案 3 :(得分:1)

可能是由于IPv6。

尝试添加

curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );

答案 4 :(得分:0)

我使用本地Web服务器遇到了这个问题。我能够通过添加

来修复
::1 localhost

/etc/hosts/文件。

这是ipv6 notation for 127.0.0.1