Handles cURL do PHP e reutilização de conexões proxy
Distinga a conservação do cache de conexões do libcurl da garantia de que uma conexão TCP através de um proxy permanece viva.
Conservar um handle cURL pode permitir que transferências posteriores reutilizem conexões compatíveis em cache. Porém, não pode obrigar um proxy a manter uma conexão TCP aberta indefinidamente.
A outra parte pode fechar uma conexão ociosa, um caminho de rede pode desaparecer e uma transferência posterior pode precisar de outra rota ou túnel. A reutilização é uma otimização do cliente sujeita a essas condições, não uma garantia de disponibilidade.
Para trabalho repetido com uma única política de proxy, mantenha vivo o handle relevante ou o cache de conexões multi-handle e evite opções que solicitem deliberadamente conexões novas ou proíbam a reutilização, a menos que a tarefa precise delas. Inspecione o comportamento real da transferência antes de supor que uma segunda requisição mais curta prova a reutilização.
Cuidado com exemplos antigos de PHP que dizem que a conexão permanece aberta "até curl_close". O PHP documenta que curl_close() não tem efeito desde o PHP 8.0 e está obsoleto desde o PHP 8.5. A propriedade dos recursos e o tempo de vida dos objetos precisam ser compreendidos na versão do PHP que você implanta.
Um timer que envia requisições repetidas para manter o proxy aquecido adiciona tráfego e ainda assim não impede que o endpoint remoto feche. Prefira o gerenciamento normal de conexões, requisições com prazo e regras claras de nova tentativa a uma promessa de que uma conexão proxy sempre sobreviverá.