Poignées cURL de PHP et réutilisation des connexions proxy
Distinguer la conservation du cache de connexions de libcurl de la garantie qu’une connexion TCP via un proxy reste active.
Conserver une poignée cURL peut permettre aux transferts ultérieurs de réutiliser des connexions compatibles mises en cache. Cela ne peut pas forcer un proxy à garder une connexion TCP ouverte indéfiniment.
Le pair peut fermer une connexion inactive, un chemin réseau peut disparaître, et un transfert ultérieur peut nécessiter un autre itinéraire ou tunnel. La réutilisation est une optimisation côté client soumise à ces conditions, et non une garantie de disponibilité.
Pour un travail répété avec une même politique de proxy, gardez vivante la poignée concernée ou le cache de connexions multi-handle et évitez les options qui demandent délibérément de nouvelles connexions ou interdisent la réutilisation, sauf si la tâche en a besoin. Examinez le comportement réel du transfert avant de supposer qu’une seconde requête plus courte prouve la réutilisation.
Méfiez-vous des anciens exemples PHP affirmant que la connexion reste ouverte « jusqu’à curl_close ». PHP documente que curl_close() n’a aucun effet depuis PHP 8.0 et est obsolète depuis PHP 8.5. La propriété des ressources et la durée de vie des objets doivent être comprises dans la version de PHP que vous déployez.
Une minuterie qui envoie des requêtes répétées pour garder le proxy chaud ajoute du trafic et ne peut toujours pas empêcher le point de terminaison distant de fermer. Préférez une gestion normale des connexions, des requêtes bornées et des règles de nouvelle tentative claires à la promesse qu’une connexion proxy survivra toujours.