Python http.client CONNECT: HTTP/1.1 desde Python 3.12
Revise la implementación de Python y del transporte antes de aplicar soluciones antiguas de HTTP/1.0 CONNECT.
La antigua afirmación de que Python siempre envía HTTP/1.0 para CONNECT ya no es una regla general segura. Python 3.12 cambió el túnel de http.client a HTTP/1.1 y añadió la generación automática de la cabecera Host cuando no se proporciona.
Ese cambio pertenece a la implementación documentada de la biblioteca estándar. Una biblioteca HTTP de nivel superior puede anular o envolver el comportamiento del túnel, así que registre su versión además de la de Python.
Si un proxy rechaza el túnel, inspeccione el intercambio CONNECT que ese cliente produjo realmente. Cambiar la versión HTTP de la petición de destino o añadir una cabecera Host a la petición al sitio web no cambia necesariamente la petición de túnel anterior.
Del mismo modo, editar campos privados en un ejemplo antiguo de adaptador de Requests puede atar la aplicación a una API interna obsoleta. Prefiera una combinación compatible y soportada de cliente y entorno de ejecución, y una integración de proxy documentada.
Mantenga las dos conversaciones separadas en el informe: la petición HTTP usada para abrir el túnel y después el protocolo negociado con el destino dentro de él. Pueden usar versiones distintas y fallar en etapas distintas.