У меня есть простой код, который выполняет запрос заголовка для URL, а затем печатает заголовки ответа. Я заметил, что на некоторых сайтах это может занять много времени.
Например, запрос 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, но служба по ссылке выше возвращает его сразу.
Чего мне не хватает?