URLの先頭リクエストを行い、応答ヘッダーを出力する簡単なコードがあります。私はいくつかのサイトでこれが完了するまでに長い時間がかかることに気付きました。PHP/Curl:HEAD一部のサイトでリクエストが長時間かかる
例えば、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);
はここで同じ機能したウェブサイトへのリンクです:上記http://www.seoconsultants.com/tools/headers.asp
コードを、少なくとも私のサーバー上で、取得するために2分かかりますwww.arstechnica.comを参照してください。ただし、上記のリンクのサービスですぐに返されます。
私には何が欠けていますか?
欠けているもの_curl_応答体である、それはHEADリクエストヘッダーのみ(本文なし)を返すことを知らないので、それはより多くのデータを送信するために、サーバー用に待っています。カールは2分間待ってから放棄します。 – Jasen