Python http.client CONNECT: HTTP/1.1 Python 3.12:sta lähtien
Tarkista Pythonin ja kuljetuksen toteutus ennen vanhojen HTTP/1.0 CONNECT -ratkaisujen käyttöä.
Vanha väite, että Python lähettää CONNECTille aina HTTP/1.0, ei ole enää turvallinen yleissääntö. Python 3.12 muutti http.clientin tunnelin HTTP/1.1:een ja lisäsi Host-otsakkeen automaattisen luonnin, kun sitä ei anneta.
Tämä muutos kuuluu dokumentoituun standardikirjaston toteutukseen. Korkeamman tason HTTP-kirjasto voi ohittaa tai kääriä tunnelin toiminnan, joten kirjaa sen versio sekä Pythonin versio.
Jos välityspalvelin hylkää tunnelin, tarkastele CONNECT-vaihtoa, jonka kyseinen asiakas todella tuotti. Kohdepyynnön HTTP-version muuttaminen tai Host-otsakkeen lisääminen verkkosivuston pyyntöön ei välttämättä muuta aiempaa tunnelipyyntöä.
Samoin yksityisten kenttien muokkaaminen vanhassa Requests-sovittimen esimerkissä voi lukita sovelluksen vanhentuneeseen sisäiseen API:in. Suosi yhteensopivaa tuettua asiakkaan ja ajonaikaisen ympäristön yhdistelmää sekä dokumentoitua välityspalvelinintegrointia.
Pidä kaksi keskustelua erillään raportissa: HTTP-pyyntö, jota käytettiin tunnelin avaamiseen, ja sitten protokolla, joka neuvoteltiin kohteen kanssa sen sisällä. Ne voivat käyttää eri versioita ja epäonnistua eri vaiheissa.