PHP / Curl:在某些站点上,HEAD请求需要很长时间
我有一个简单的代码,它对URL执行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,但上面链接中的服务会立即返回它。
我错过了什么?