Python http.client CONNECT: HTTP/1.1 desde Python 3.12
Comprobe a implementación de Python e do transporte antes de aplicar solucións antigas de HTTP/1.0 CONNECT.
A antiga afirmación de que Python sempre envía HTTP/1.0 para CONNECT xa non é unha regra xeral segura. Python 3.12 cambiou o túnel de http.client a HTTP/1.1 e engadiu a xeración automática da cabeceira Host cando non se fornece.
Ese cambio pertence á implementación documentada da biblioteca estándar. Unha biblioteca HTTP de nivel superior pode anular ou envolver o comportamento do túnel, así que rexistre a súa versión xunto coa de Python.
Se un proxy rexeita o túnel, inspeccione o intercambio CONNECT que ese cliente produciu realmente. Cambiar a versión HTTP da petición de destino ou engadir unha cabeceira Host á petición ao sitio web non cambia necesariamente a petición de túnel anterior.
Do mesmo xeito, editar campos privados nun exemplo antigo de adaptador de Requests pode bloquear a aplicación a unha API interna obsoleta. Prefira unha combinación compatible e admitida de cliente e contorno de execución e unha integración de proxy documentada.
Manteña as dúas conversas separadas no informe: a petición HTTP usada para abrir o túnel, e despois o protocolo negociado co destino dentro del. Poden usar versións diferentes e fallar en etapas diferentes.