Dans php, curl_getInfo () et curl_upkeep () sont tous deux des fonctions liées à la bibliothèque Curl. Curl (Client URL Library) permet à PHP d'interagir avec différents services réseau, tels que l'obtention du contenu de la page Web, la soumission de données de formulaire ou la communication avec d'autres applications réseau. Comprendre le rôle de ces deux fonctions et leurs interrelations est crucial pour la programmation efficace des réseaux.
Tout d'abord, jetons un coup d'œil à la fonction curl_getinfo () . Cette fonction est utilisée pour obtenir des informations pertinentes sur une session Curl. Lorsque vous lancez une demande Curl, Curl_getInfo () peut fournir divers détails sur la demande, telles que le code d'état HTTP, le temps de demande, les informations d'en-tête de réponse, etc. Cette fonction est utilisée comme suit:
$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);
Dans le code ci-dessus, Curl_getInfo () renvoie un tableau associatif contenant les informations de demande. Ces informations comprennent, mais sans s'y limiter:
URL : l'URL demandée.
HTTP_CODE : le code d'état HTTP renvoyé.
Total_time : le temps total passé sur demande.
size_download : le nombre d'octets téléchargés.
Ensuite, présentons la fonction curl_upkeep () . La fonction consiste à maintenir l'état de connexion de la session Curl actuelle et, dans certains cas, il peut aider à réduire les frais généraux de l'établissement de connexion, en particulier lors de la réalisation de plusieurs demandes similaires.
Supposons que nous ayons une série de demandes similaires à envoyer et que le rétablissement de la connexion à chaque fois entraînera des problèmes de performances. À l'heure actuelle, en utilisant curl_upkeep () , une connexion active peut être conservée pour que les demandes ultérieures soient utilisées, améliorant ainsi l'efficacité.
Cependant, curl_upkeep () n'affecte pas directement votre accès aux détails de la demande Curl, il se concentre principalement sur la maintenance de la connexion. De cette façon, les demandes ultérieures ne rétablissent pas la connexion, mais continuent d'utiliser la connexion existante, ce qui aide à économiser des ressources.
Supposons d'abord une demande de curl, puis d'appeler curl_upkeep () pour continuer à initier la demande. Il peut y avoir des changements importants lors de l'utilisation de Curl_getInfo () , en particulier dans les aspects suivants:
Modifications du temps de demande ( total_time ) <br> Lorsque vous exécutez plusieurs demandes, si la connexion est rétablie pour chaque demande, le total_time sera relativement long. Cependant, lorsque vous utilisez curl_upkeep () , les demandes suivantes peuvent réutiliser la connexion précédente, de sorte que le temps de demande sera considérablement réduit. Le total_time renvoyé par Curl_getInfo () reflétera cette amélioration des performances.
Modifications du code d'état HTTP ( http_code ) <br> Si la demande est réussie, http_code peut ne pas changer de manière significative, mais s'il existe une fluctuation ou une erreur de réseau lors du multiplexage de la connexion, la valeur de retour de HTTP_CODE peut afficher un message d'erreur différent. Par exemple, un code d'état pour la connexion ou le délai d'expiration peut se produire.
Modifications du nom de domaine URL <br> L'URL est renvoyée chaque fois que vous utilisez curl_getInfo () pour obtenir des informations. Si le nom de domaine que nous avons demandé a changé (par exemple.com est modifié en m66.net ), l' URL retournée sera mise à jour vers le nouveau nom de domaine.
Par exemple, si nous utilisons http://example.com dans la demande initiale, puis appelons curl_upkeep () , lorsque nous envoyons la demande, une nouvelle URL peut être affichée dans la valeur de retour de Curl_getInfo () :
// Première demande
curl_setopt($ch, CURLOPT_URL, "http://example.com");
$info = curl_getinfo($ch);
// Appel curl_upkeep
curl_upkeep($ch);
// Envoyer une demande ultérieure,Changement de nom de domaine
curl_setopt($ch, CURLOPT_URL, "http://m66.net");
$info = curl_getinfo($ch); // Retourné URL Sera m66.net
En général, Curl_upkeep () est principalement utilisé pour maintenir la session Curl active et éviter un établissement de connexion fréquent, ce qui peut améliorer les performances. Curl_getInfo () est utilisé pour obtenir des informations détaillées de la session Curl actuelle. Il reflète les modifications du temps de demande, du code d'état, de l'URL demandée et d'autres informations avant et après curl_upkeep () est appelée. Par conséquent, après avoir utilisé curl_upkeep () , vous verrez que les informations renvoyées par curl_getInfo () sont différentes, en particulier en termes de temps de demande et de modifications du nom de domaine (telles que l'URL).
En utilisant ces deux fonctions raisonnablement, les développeurs peuvent rendre les demandes de réseau plus efficacement, optimiser les performances et améliorer la vitesse de réponse de l'application.