Dans cette discussion, nous explorons un problème dans lequel le client Go HTTPS ne parvient pas à réutiliser les connexions, ce qui entraîne un comportement potentiellement problématique.
Le code Go fourni crée plusieurs connexions à un hôte particulier, malgré l'utilisation d'une seule instance http.Transport avec DisableKeepAlives défini sur false. Ceci est différent du code Python similaire utilisant la bibliothèque de requêtes, qui réutilise les connexions.
Le malentendu initial était que le client Go devait réutiliser les connexions par défaut. Cependant, des précisions ont révélé que le comportement par défaut nécessite que la réponse soit fermée avant que les connexions puissent être réutilisées.
Pour assurer la réutilisation des connexions HTTP dans Go, deux étapes essentielles doivent être respectées :
Bien que l'absence de contrôle maximal des connexions soit une limitation, elle peut être atténuée par des requêtes de limitation de débit utilisant time.Tick.
En résolvant le problème de la fermeture du corps de la réponse, les développeurs peuvent garantir que le client HTTP de Go réutilise correctement les connexions. Ceci est crucial pour éviter d’accumuler des connexions TCP excessives.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!