ข้อความเก่าที่ว่า Python ส่ง HTTP/1.0 สำหรับ CONNECT เสมอ ไม่ใช่กฎทั่วไปที่ปลอดภัยอีกต่อไป Python 3.12 เปลี่ยนการทำอุโมงค์ของ http.client เป็น HTTP/1.1 และเพิ่มการสร้างส่วนหัว Host โดยอัตโนมัติเมื่อไม่ได้ระบุ

การเปลี่ยนแปลงนั้นเป็นส่วนหนึ่งของการใช้งานไลบรารีมาตรฐานที่มีเอกสารกำกับ ไลบรารี HTTP ระดับสูงกว่าสามารถเขียนทับหรือห่อหุ้มพฤติกรรมของอุโมงค์ได้ ดังนั้นให้บันทึกเวอร์ชันของไลบรารีนั้นและเวอร์ชันของ Python

หากพร็อกซีปฏิเสธอุโมงค์ ให้ตรวจสอบการแลกเปลี่ยน CONNECT ที่ไคลเอนต์นั้นสร้างขึ้นจริง การเปลี่ยนเวอร์ชัน HTTP ของคำขอปลายทางหรือการเพิ่มส่วนหัว Host ให้กับคำขอเว็บไซต์ไม่จำเป็นต้องเปลี่ยนคำขออุโมงค์ก่อนหน้า

เช่นเดียวกัน การแก้ไขฟิลด์ส่วนตัวในตัวอย่างอะแดปเตอร์ Requests แบบเก่าอาจล็อกแอปพลิเคชันไว้กับ API ภายในที่ล้าสมัย ควรเลือกชุดค่าผสมไคลเอนต์และรันไทม์ที่เข้ากันได้และได้รับการสนับสนุน พร้อมการผสานรวมพร็อกซีที่มีเอกสารกำกับ

แยกบทสนทนาสองส่วนในรายงาน: คำขอ HTTP ที่ใช้เปิดอุโมงค์ จากนั้นโปรโตคอลที่เจรจากับปลายทางภายในอุโมงค์ ทั้งสองอาจใช้เวอร์ชันต่างกันและล้มเหลวในขั้นตอนต่างกัน

บทความที่เกี่ยวข้อง