Python http.client CONNECT: HTTP/1.1 që nga Python 3.12
Kontrolloni implementimin e Python dhe të transportit përpara se të aplikoni zgjidhjet e vjetra HTTP/1.0 CONNECT.
Pohimi i vjetër se Python dërgon gjithmonë HTTP/1.0 për CONNECT nuk është më rregull i përgjithshëm i sigurt. Python 3.12 ndryshoi tunelizimin e http.client në HTTP/1.1 dhe shtoi gjenerimin automatik të kokës Host kur ajo nuk ofrohet.
Ky ndryshim i përket implementimit të dokumentuar të bibliotekës standarde. Një bibliotekë HTTP e nivelit më të lartë mund të anashkalojë ose mbështjellë sjelljen e tunelit, prandaj shënoni versionin e saj dhe atë të Python.
Nëse një proxy e refuzon tunelin, shqyrtoni shkëmbimin CONNECT që ai klient ka prodhuar në të vërtetë. Ndryshimi i versionit HTTP të kërkesës së destinacionit ose shtimi i një koke Host në kërkesën drejt faqes nuk e ndryshon domosdoshmërisht kërkesën e mëparshme të tunelit.
Po ashtu, modifikimi i fushave private në një shembull të vjetër adaptori Requests mund ta lidhë aplikacionin me një API të brendshme të vjetruar. Preferoni një kombinim të përputhshëm dhe të mbështetur klienti dhe mjedisi ekzekutimi dhe një integrim të dokumentuar të proxy-t.
Mbani dy bisedat të ndara në raport: kërkesa HTTP e përdorur për të hapur tunelin, dhe më pas protokolli i negociuar me destinacionin brenda tij. Ato mund të përdorin versione të ndryshme dhe të dështojnë në faza të ndryshme.