現在の位置: ホーム> 最新記事一覧> curl_upkeep()を使用する前と後のcurl_getinfo()の効果を比較します

curl_upkeep()を使用する前と後のcurl_getinfo()の効果を比較します

M66 2025-05-18

PHPでは、 curl_getinfo()curl_upkeep()はどちらもCurlライブラリに関連する関数です。 CURL(クライアントURLライブラリ)により、PHPは、Webページコンテンツの取得、フォームデータの送信、他のネットワークアプリケーションとの通信など、さまざまなネットワークサービスと対話できます。これら2つの機能とその相互関係の役割を理解することは、効率的なネットワークプログラミングには重要です。

curl_getinfo()関数

まず、 curl_getinfo()関数を見てみましょう。この関数は、CURLセッションに関する関連情報を取得するために使用されます。 Curl要求を開始すると、 curl_getinfo()は、 HTTPステータスコード、リクエスト時間、応答ヘッダー情報など、リクエストに関するさまざまな詳細を提供できます。この関数は次のように使用されます。

 $ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://example.com"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$response = curl_exec($ch); 

$info = curl_getinfo($ch); 
print_r($info); 

curl_close($ch);

上記のコードでは、 curl_getInfo()は、リクエスト情報を含む連想配列を返します。この情報には、以下が含まれますが、これらに限定されません。

  • URL :要求されたURL。

  • http_code :返されたHTTPステータスコード。

  • Total_time :リクエストに費やす合計時間。

  • size_download :ダウンロードされたバイト数。

curl_upkeep()関数

次に、 curl_upkeep()関数を紹介しましょう。機能は、現在のCurlセッションの接続状態を維持することであり、場合によっては、特に複数の同様のリクエストを行う場合、接続確立のオーバーヘッドを減らすのに役立ちます。

送信する一連の同様のリクエストがあり、毎回接続を再確立するとパフォーマンスの問題が発生するとします。この時点で、 curl_upkeep()を使用することにより、その後のリクエストを使用するためにアクティブな接続を保持し、それにより効率を向上させることができます。

ただし、 curl_upkeep()は、 Curl要求の詳細へのアクセスに直接影響しないため、主に接続の維持に焦点を当てています。このようにして、後続の要求は接続を再確立するのではなく、既存の接続を引き続き使用してリソースを節約できます。

curl_getinfo ()は、curl_upkeep ()を使用する前と後に変更されます

最初にCurlリクエストを実行し、次にcurl_upkeep()を呼び出してリクエストを開始し続けます。特に以下の側面で、 curl_getinfo()を使用する場合、いくつかの大きな変更があります。

  1. リクエスト時間の変更( total_time <br> 複数のリクエストを実行している場合、各リクエストに対して接続が再確立された場合、 Total_timeは比較的長くなります。ただし、 curl_upkeep()を使用すると、後続のリクエストは以前の接続を再利用できるため、要求時間が大幅に短縮されます。 curl_getinfo()によって返される合計_timeは、このパフォーマンスの改善を反映します。

  2. HTTPステータスコード( http_code )<br>の変更 要求が成功した場合、 http_codeは大幅に変更されない場合がありますが、接続をマルチプレックスするときにネットワークの変動またはエラーがある場合、 http_codeの返品値に異なるエラーメッセージが表示される場合があります。たとえば、接続再生またはタイムアウトのステータスコードが発生する場合があります。

  3. URLドメイン名の変更<br> URLは、curl_getinfo()を使用して情報を取得するたびに返されます。要求したドメイン名が変更された場合(たとえば、comがm66.netに変更されます)、返されたURLは新しいドメイン名に更新されます。

たとえば、最初の要求でhttp://example.comを使用してからcurl_upkeep()を呼び出すと、リクエストを再度送信すると、 curl_getinfo()の返された値に新しいurlが表示される場合があります。

 // 最初のリクエスト
curl_setopt($ch, CURLOPT_URL, "http://example.com");
$info = curl_getinfo($ch);

// 電話 curl_upkeep
curl_upkeep($ch);

// 後続のリクエストを送信します,ドメイン名の変更
curl_setopt($ch, CURLOPT_URL, "http://m66.net");
$info = curl_getinfo($ch); // 返された URL そうなるでしょう m66.net

要約します

一般に、 curl_upkeep()は、主にCurlセッションをアクティブに保ち、パフォーマンスを改善できる頻繁な接続確立を避けるために使用されます。 curl_getinfo()は、現在のCurlセッションの詳細情報を取得するために使用されます。これは、curl_upkeep()が呼び出される前後のリクエスト時間、ステータスコード、要求されたURLおよびその他の情報の変更を反映しています。したがって、 curl_upkeep()を使用した後、 curl_getinfo()によって返される情報は、特に要求の時間とドメイン名(URLなど)の変更に関して異なることがわかります。

これら2つの機能を合理的に使用することにより、開発者はネットワークリクエストをより効率的に行い、パフォーマンスを最適化し、アプリケーションの応答速度を向上させることができます。