پراکسی کے پیچھے 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 URL اور مطلوبہ ہیڈرز/تصدیق استعمال کریں۔ دونوں مشینوں پر جانے والا Accept-Encoding، آنے والا Content-Encoding اور پیکیج سپورٹ موازنہ کریں؛ تبدیل کرنے والا ثالث پرانا میٹاڈیٹا بھی دے سکتا ہے۔ الگ عوامی صفحہ موازنہ HTTP پراکسی فہرست کو اپنے پراکسی URL کے لیے استعمال کر سکتا ہے جہاں عوامی ثالثوں کی اجازت ہو، مگر وراثتی پراکسی اسناد، نقل شدہ اکاؤنٹ ہیڈرز یا نجی باڈی ڈیٹا کے بغیر۔
بصورت دیگر عام کلائنٹ بات چیت کو ترجیح دیں۔ Requests کے سہل content/text انٹرفیس معاون انکوڈنگ ڈیکوڈ کرتے ہیں، اس لیے صرف اس بنا پر کہ ہیڈر اس کا نام لیتا ہے ان کے آؤٹ پٹ کو دوبارہ ڈی کمپریس نہ کریں۔