התגובה של Requests נראית משובשת מאחורי פרוקסי? בדקו תמיכת Brotli
Accept-Encoding:br שהועתק עשוי להקדים את תמיכת המפענח בסביבת Requests המתארחת.
השוו בין המחשב הנייד לתהליך המתארח בשתי שכבות שונות:
| שכבה | שאלה |
|---|---|
| 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 הקיים, בכתובת HTTPS ובכותרות/אימות הנדרשים. השוו Accept-Encoding יוצא, Content-Encoding נכנס ותמיכת חבילות בשני המחשבים; מתווך שממיר עשוי גם לספק מטא-נתונים מיושנים. השוואה נפרדת של עמוד ציבורי יכולה להשתמש ב-רשימת פרוקסי HTTP עבור כתובת הפרוקסי שלו במקום שבו מתווכים ציבוריים מותרים, בלי אישורי פרוקסי בירושה, כותרות חשבון מועתקות או נתוני גוף פרטיים.
אחרת העדיפו משא ומתן רגיל של הלקוח. ממשקי content/text הנוחים של Requests מפענחים קידוד נתמך, לכן אל תפרסו שוב את הפלט שלהם רק מפני שהכותרת נוקבת בשמו.