URLのヘッドリクエストを実行し、応答ヘッダーを出力する単純なコードがあります。一部のサイトでは、これが完了するまでに長い時間がかかる場合があることに気づきました。
たとえば、リクエストhttp://www.arstechnica.com
には約2分かかります。同じ基本的なタスクを実行する別のWebサイトを使用して同じリクエストを試しましたが、すぐに返されます。ですから、私が間違って設定したものがこの遅延の原因になっているに違いありません。
これが私が持っているコードです:
$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);
同じ機能を実行するWebサイトへのリンクは次のとおりです。http ://www.seoconsultants.com/tools/headers.asp
上記のコードは、少なくとも私のサーバーでは、www.arstechnica.comを取得するのに2分かかりますが、上記のリンクのサービスはすぐにそれを返します。
私は何が欠けていますか?