Python http.client CONNECT: HTTP/1.1 des de Python 3.12
Comproveu la implementació de Python i del transport abans d'aplicar solucions antigues d'HTTP/1.0 CONNECT.
L'afirmació antiga que Python sempre envia HTTP/1.0 per a CONNECT ja no és una regla general segura. Python 3.12 va canviar el túnel d'http.client a HTTP/1.1 i va afegir la generació automàtica de la capçalera Host quan no es proporciona.
Aquest canvi pertany a la implementació documentada de la biblioteca estàndard. Una biblioteca HTTP de nivell superior pot substituir o embolcallar el comportament del túnel, així que anoteu la seva versió i també la de Python.
Si un proxy rebutja el túnel, examineu l'intercanvi CONNECT que aquest client ha produït realment. Canviar la versió HTTP de la petició de destinació o afegir una capçalera Host a la petició al lloc web no canvia necessàriament la petició de túnel anterior.
De la mateixa manera, editar camps privats en un exemple antic d'adaptador de Requests pot lligar l'aplicació a una API interna obsoleta. Preferiu una combinació compatible i suportada de client i entorn d'execució i una integració de proxy documentada.
Manteniu les dues converses separades a l'informe: la petició HTTP utilitzada per obrir el túnel, i després el protocol negociat amb la destinació a dins. Poden usar versions diferents i fallar en etapes diferents.