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.

Articles relacionats