Python http.client CONNECT: HTTP/1.1 sidan Python 3.12
Kontroller Python- og transportimplementasjonen før du brukar gamle HTTP/1.0 CONNECT-løysingar.
Den gamle påstanden om at Python alltid sender HTTP/1.0 for CONNECT er ikkje lenger ein trygg generell regel. Python 3.12 endra tunnelleringa i http.client til HTTP/1.1 og la til automatisk generering av Host-hovudet når det ikkje vert oppgjeve.
Denne endringa høyrer til den dokumenterte implementasjonen av standardbiblioteket. Eit HTTP-bibliotek på høgare nivå kan overstyre eller pakke inn tunnelåtferda, så noter versjonen både for det og for Python.
Viss ein proxy avviser tunnelen, gransk CONNECT-utvekslinga som klienten faktisk produserte. Å endre HTTP-versjonen på mål-førespurnaden eller leggje til eit Host-hovud på nettside-førespurnaden endrar ikkje nødvendigvis den tidlegare tunnel-førespurnaden.
På same måte kan redigering av private felt i eit gammalt Requests-adapterdøme låse applikasjonen til eit utdatert internt API. Føretrekk ein kompatibel og støtta kombinasjon av klient og køyretidsmiljø og ein dokumentert proxyintegrasjon.
Hald dei to samtalene åtskilde i rapporten: HTTP-førespurnaden som vart brukt til å opne tunnelen, og deretter protokollen som vart forhandla med målet inni han. Dei kan bruke ulike versjonar og feile på ulike steg.