เปรียบเทียบแล็ปท็อปกับโปรเซสที่โฮสต์ในสองชั้นที่แตกต่างกัน:

ชั้นคำถาม
Content-Encodingไคลเอนต์สามารถคลายการบีบอัดไบต์ gzip/deflate/Brotli ที่ส่งกลับมาได้หรือไม่?
Charsetไบต์ที่คลายการบีบอัดแล้วกลายเป็นข้อความได้อย่างไร?

โดยปกติ Requests จัดการ gzip/deflate; Brotli ต้องมีไลบรารีที่ติดตั้งและรองรับแล้ว Accept-Encoding ที่คัดลอกด้วยมืออาจประกาศ br ในขณะที่สภาพแวดล้อมนี้ถอดรหัสไม่ได้ การเลือกข้อความ UTF-8 ไม่ได้คลายการบีบอัด Brotli

เมื่อจำกัดการเจรจาโดยเจตนา:

response = session.get(
    url,
    proxies={"https": "http://proxy.example:8080"},
    headers={"Accept-Encoding": "gzip, deflate"},
    timeout=30,
)
response.raise_for_status()

ใช้ Session ที่มีอยู่ URL แบบ HTTPS และเฮดเดอร์/การยืนยันตัวตนที่จำเป็น เปรียบเทียบ Accept-Encoding ขาออก Content-Encoding ขาเข้า และการรองรับแพ็กเกจบนเครื่องทั้งสอง; ตัวกลางที่แปลงข้อมูลอาจให้เมทาดาทาที่ล้าสมัยได้เช่นกัน การเปรียบเทียบหน้าเว็บสาธารณะแยกต่างหากอาจใช้ รายการพร็อกซี HTTP สำหรับ URL พร็อกซีของตนในที่ที่อนุญาตให้ใช้ตัวกลางสาธารณะ โดยไม่มีความรับรองพร็อกซีที่สืบทอดมา เฮดเดอร์บัญชีที่คัดลอก หรือข้อมูลเนื้อหาส่วนตัว

มิฉะนั้นให้เลือกการเจรจาปกติของไคลเอนต์ อินเทอร์เฟซ content/text ที่สะดวกของ Requests จะถอดรหัสการเข้ารหัสที่รองรับ ดังนั้นอย่าคลายการบีบอัดเอาต์พุตของมันซ้ำเพียงเพราะเฮดเดอร์ระบุชื่อ

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