ڈاؤن لوڈ URL درست ہے، مگر مشترکہ پراکسی کے پاس اب بھی محفوظ جواب موجود ہے۔ اگر عمل کو ماخذ کے ساتھ تصدیق شدہ جواب درکار ہو تو یہ شرط درخواست پر رکھیں:

from urllib.request import ProxyHandler, Request, build_opener
import shutil

opener = build_opener(ProxyHandler({
    "https": "http://proxy.example:8080",
}))
request = Request(download_url, headers={"Cache-Control": "no-cache"})
with opener.open(request, timeout=15) as response:
    shutil.copyfileobj(response, output)

یہ ٹکڑا فرض کرتا ہے کہ ایپلیکیشن کے پاس بائنری آؤٹ پٹ اسٹریم ہے اور یہ HTTPS download_url فراہم کرتی ہے۔ پراکسی تصدیق کے بغیر اجازت یافتہ عوامی ڈاؤن لوڈ آزمانے کے لیے opener میں HTTP پراکسی فہرست سے HTTP اینڈ پوائنٹ امیدوار استعمال کریں؛ درخواست کی کیش شرط ویسی ہی رہتی ہے۔ یہ اصل ریسورس URL برقرار رکھتا ہے اور درخواست کے راستے میں موجود کیشوں سے دوبارہ استعمال سے پہلے تصدیق کرنے کو کہتا ہے۔

تصدیق محفوظ بائٹس کو دوبارہ استعمال کر سکتی ہے

no-cache وصول کرنے والا موافق کیش ماخذ کے ساتھ کامیاب تصدیق کے بغیر محفوظ جواب سے یہ درخواست پوری نہیں کر سکتا۔ ماخذ تصدیق کر سکتا ہے کہ محفوظ نمائندگی اب بھی درست ہے، اس لیے عمل کو ماخذ سے غیر تبدیل شدہ فائل دوبارہ بھیجنے کی ضرورت نہیں۔

درخواست میں max-age=0 عمر کی حد ظاہر کرتا ہے۔ یہ تب مفید ہے جب ایپلیکیشن ایسا جواب چاہے جو اس حد سے پرانا نہ ہو، مگر یہ ذخیرہ کاری کی ممانعت نہیں۔ ابھی بنایا گیا جواب اسے پورا کر سکتا ہے۔

بے ترتیب کوئری پیرامیٹر شامل کرنا مختلف ہدف URI مانگتا ہے۔ یہ کوئی دوسرا کیش اندراج بنا سکتا ہے یا ایپلیکیشن کا جواب بھی بدل سکتا ہے۔ کوئری پیرامیٹر صرف اسی وقت استعمال کریں جب وہ ریسورس کے مطلوبہ انٹرفیس کا حصہ ہو۔

عام HTTPS CONNECT کے لیے، ٹنلنگ پراکسی TLS کے اندر یہ ہیڈر نہیں دیکھ سکتی۔ پالیسی پھر بھی ماخذ اور ڈکرپٹ شدہ HTTP تبادلے کو سنبھالنے والے کیشوں تک پہنچ سکتی ہے۔ محفوظ جواب کو ٹنل سے منسوب کرنے سے پہلے جانچیں کہ وہ واقعی کہاں موجود ہے۔

متعلقہ مضامین