PHPでは、 curl_getinfo()とcurl_upkeep()はどちらもCurlライブラリに関連する関数です。 CURL(クライアントURLライブラリ)により、PHPは、Webページコンテンツの取得、フォームデータの送信、他のネットワークアプリケーションとの通信など、さまざまなネットワークサービスと対話できます。これら2つの機能とその相互関係の役割を理解することは、効率的なネットワークプログラミングには重要です。
まず、 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セッションの接続状態を維持することであり、場合によっては、特に複数の同様のリクエストを行う場合、接続確立のオーバーヘッドを減らすのに役立ちます。
送信する一連の同様のリクエストがあり、毎回接続を再確立するとパフォーマンスの問題が発生するとします。この時点で、 curl_upkeep()を使用することにより、その後のリクエストを使用するためにアクティブな接続を保持し、それにより効率を向上させることができます。
ただし、 curl_upkeep()は、 Curl要求の詳細へのアクセスに直接影響しないため、主に接続の維持に焦点を当てています。このようにして、後続の要求は接続を再確立するのではなく、既存の接続を引き続き使用してリソースを節約できます。
最初にCurlリクエストを実行し、次にcurl_upkeep()を呼び出してリクエストを開始し続けます。特に以下の側面で、 curl_getinfo()を使用する場合、いくつかの大きな変更があります。
リクエスト時間の変更( total_time ) <br> 複数のリクエストを実行している場合、各リクエストに対して接続が再確立された場合、 Total_timeは比較的長くなります。ただし、 curl_upkeep()を使用すると、後続のリクエストは以前の接続を再利用できるため、要求時間が大幅に短縮されます。 curl_getinfo()によって返される合計_timeは、このパフォーマンスの改善を反映します。
HTTPステータスコード( http_code )<br>の変更 要求が成功した場合、 http_codeは大幅に変更されない場合がありますが、接続をマルチプレックスするときにネットワークの変動またはエラーがある場合、 http_codeの返品値に異なるエラーメッセージが表示される場合があります。たとえば、接続再生またはタイムアウトのステータスコードが発生する場合があります。
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つの機能を合理的に使用することにより、開発者はネットワークリクエストをより効率的に行い、パフォーマンスを最適化し、アプリケーションの応答速度を向上させることができます。