ডাউনলোড 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 বিনিময় পরিচালনা করা ক্যাশগুলিতে পৌঁছাতে পারে। সংরক্ষিত প্রতিক্রিয়া টানেলকে দায়ী করার আগে সেটি আসলে কোথায় আছে দেখে নিন।

সম্পর্কিত নিবন্ধ