我有一个简单的代码,它为URL做头部请求,然后打印响应头。我注意到在某些网站上,这可能需要很长时间才能完成。PHP/Curl:HEAD请求在某些站点上花费很长时间
例如,请求http://www.arstechnica.com
需要大约两分钟。我已经使用另一个执行相同基本任务的网站尝试了相同的请求,并立即返回。所以必须有一些我设置不正确的东西导致了这种延迟。
这里是我的代码:
$ch = curl_init();
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt ($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
// Only calling the head
curl_setopt($ch, CURLOPT_HEADER, true); // header will be at output
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'HEAD'); // HTTP request is 'HEAD'
$content = curl_exec ($ch);
curl_close ($ch);
下面是该网站做同样的功能的链接:http://www.seoconsultants.com/tools/headers.asp
上面的代码,至少在我的服务器上,需要两分钟检索www.arstechnica.com,但上述链接中的服务会立即返回。
我错过了什么?
缺什么_curl_是响应主体,它不知道HEAD请求只返回头(无体),所以它等待服务器来发送更多的数据。所以卷曲等待2分钟,然后放弃。 – Jasen 2014-07-31 22:16:35