Senas teiginys, kad Python visada siunčia HTTP/1.0 skirtą CONNECT, nebėra saugi bendra taisyklė. Python 3.12 pakeitė http.client tunelių kūrimą į HTTP/1.1 ir pridėjo automatinį Host antraštės generavimą, kai ji nepateikiama.

Šis pakeitimas priklauso dokumentuotai standartinės bibliotekos įgyvendinimui. Aukštesnio lygio HTTP biblioteka gali pakeisti arba apgaubti tunelio elgseną, todėl užrašykite jos versiją ir Python versiją.

Jei tarpinė serveris atmeta tunelį, išnagrinėkite CONNECT mainus, kuriuos tas klientas iš tikrųjų sukūrė. Paskirties užklausos HTTP versijos pakeitimas arba Host antraštės pridėjimas prie svetainės užklausos nebūtinai pakeičia ankstesnę tunelio užklausą.

Panašiai, privačių laukų redagavimas sename Requests adapterio pavyzdyje gali pririšti programą prie pasenusios vidinės API. Pirmenybę teikite suderinamam ir palaikomam kliento bei vykdymo aplinkos deriniui ir dokumentuotai tarpinio serverio integracijai.

Laikykite abu pokalbius atskirai ataskaitoje: HTTP užklausa, naudota tuneliui atidaryti, tada protokolas, suderintas su paskirtimi jo viduje. Jie gali naudoti skirtingas versijas ir žlugti skirtinguose etapuose.

Susiję straipsniai