Python'un CONNECT için her zaman HTTP/1.0 gönderdiğine dair eski ifade artık güvenli bir genel kural değildir. Python 3.12, http.client tünellemesini HTTP/1.1'e değiştirdi ve Host başlığı verilmediğinde otomatik oluşturulmasını ekledi.

Bu değişiklik belgelenmiş standart kitaplık uygulamasına aittir. Daha üst düzey bir HTTP kitaplığı tünel davranışını geçersiz kılabilir veya sarmalayabilir, bu nedenle hem onun sürümünü hem de Python sürümünü kaydedin.

Bir proxy tüneli reddederse, o istemcinin gerçekte ürettiği CONNECT alışverişini inceleyin. Hedef isteğin HTTP sürümünü değiştirmek veya web sitesi isteğine Host başlığı eklemek önceki tünel isteğini mutlaka değiştirmez.

Benzer şekilde, eski bir Requests bağdaştırıcısı örneğindeki özel alanları düzenlemek uygulamayı kullanımdan kalkmış bir iç API'ye kilitleyebilir. Uyumlu ve desteklenen bir istemci ve çalışma zamanı bileşimini ve belgelenmiş bir proxy entegrasyonunu tercih edin.

Raporda iki konuşmayı ayrı tutun: tüneli açmak için kullanılan HTTP isteği, ardından onun içinde hedefle görüşülen protokol. Farklı sürümler kullanabilir ve farklı aşamalarda başarısız olabilirler.

İlgili makaleler