Dans les applications Web modernes, les demandes HTTP fréquentes et les interactions de réponse avec les serveurs sont des exigences très courantes. Chaque fois que vous établissez une connexion, envoyez une demande et fermez la connexion, elle consomme beaucoup de ressources et de temps, en particulier lorsqu'il est confronté à des demandes simultanées élevées, ce qui peut exercer beaucoup de pression sur le serveur. Pour optimiser les performances et réduire la charge du serveur, nous pouvons utiliser une méthode appelée maintenir les connexions actives, où la fonction de curl dans PHP peut nous aider à y parvenir.
Dans cet article, nous nous concentrerons sur la façon de maintenir les connexions HTTP actives via la fonction curl_upkeed () , réduisant ainsi les problèmes de performance causés par la reconstruction fréquente des connexions.
Chaque fois qu'une demande HTTP est lancée au serveur via CURL , elle passera par le processus d'établissement d'une connexion, d'envoi de données, de réception de données et de fermeture de la connexion. Pour chaque demande, l'établissement et la déconnexion consomment des ressources système. En particulier dans le cas d'une concurrence élevée, l'establishment fréquent et la fermeture des connexions peuvent conduire à une surcharge du serveur.
En utilisant la fonction Keep-Alive, vous pouvez éviter de rétablir la connexion à chaque fois que vous demandez. HTTP Keep-Alive permet aux connexions de rester ouvertes après l'envoi de demandes, permettant à plusieurs demandes de partager une connexion, réduisant le nombre de connexions TCP établies et démolies, réduisant ainsi la pression du serveur et améliorant les performances.
Dans PHP, Curl est un outil très puissant pour envoyer des demandes HTTP et traiter les réponses du serveur. Pour maintenir la connexion active, nous pouvons définir certaines options dans la configuration Curl .
Supposons que nous ayons déjà une demande Curl de base, et maintenant nous voulons le modifier afin qu'il puisse maintenir la connexion active:
<?php
function curl_upkeep($url) {
// initialisation cURL Session
$ch = curl_init();
// Définition de la cible URL
curl_setopt($ch, CURLOPT_URL, $url);
// Définissez la méthode de demande à GET
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
// Activer la valeur de retour au lieu de la sortie
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Définir les informations d'en-tête,Prise en charge de rester connecté
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Connection: keep-alive"
]);
// Définissez le nombre maximum de temps de réessayer et de réessayer l'intervalle
curl_setopt($ch, CURLOPT_MAXREDIRS, 3);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// Exécutez une demande et obtenez une réponse
$response = curl_exec($ch);
// Vérifiez si une erreur s'est produite
if(curl_errno($ch)) {
echo "cURL error: " . curl_error($ch);
}
// fermeture cURL Session
curl_close($ch);
// Réponse de retour
return $response;
}
// utiliser m66.net Par exemple URL
$response = curl_upkeep("https://m66.net/api/getData");
echo $response;
?>
Restez connecté :
Nous ajoutons un en-tête HTTP de connexion: Keep-Alive en définissant l'option curlopt_httpheader dans curl_setopt () . Cet en-tête indique au serveur que le client souhaite maintenir la connexion actuelle active après avoir envoyé la réponse et peut accepter les demandes ultérieures.
Redirection maximale :
L'option Curlopt_maxredirs contrôle le nombre maximum de redirections autorisées. Dans certains cas, le serveur peut renvoyer une réponse de redirection (telle que 301 ou 302), et nous pouvons limiter le nombre de redirections à travers cette option pour empêcher les boucles infinies.
Suivez la redirection :
CURLOPT_FOLOWLOCATION est défini sur TRUE pour permettre à Curl de suivre la réponse de redirection de classe 3xx. Ceci est très important pour s'assurer que la demande peut atteindre l'emplacement final du serveur cible.
Gestion des erreurs :
Nous utilisons curl_errno () et curl_error () pour capturer et sortir des erreurs possibles pour garantir que les erreurs peuvent être diagnostiquées dans le temps.
Renvoie la réponse :
curl_exec () renvoie les données de réponse du serveur, que nous stockons et renvoyons pour le traitement ultérieur.
En utilisant l'option Keep Connection dans Curl , nous pouvons réduire considérablement la pression du serveur à partir de la création et de la fermeture fréquentes de la connexion. En particulier lors de la gestion d'un grand nombre de demandes, le maintien de la connexion active peut améliorer efficacement les performances des applications, réduire la latence et optimiser l'expérience utilisateur. Nous améliorons la fiabilité et la flexibilité des demandes en définissant la connexion: Keep-Alive pour rendre la connexion durable et définir d'autres options de curl .
Espérons que par cet article, vous pouvez mieux comprendre comment utiliser curl_upkeep () pour maintenir la connexion active et réduire la pression sur le serveur en raison de la reconstruction fréquente des connexions.