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