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.

Artigos relacionados