Cache-Control: no-cache प्रयोग गरी प्रोक्सीबाट डाउनलोड पुनः प्रमाणित गर्नुहोस्
डाउनलोड URL नबदली प्रमाणित प्रतिक्रिया माग्नुहोस् र पुनः प्रमाणीकरणलाई भण्डारणमा लगाइएको प्रतिबन्धसँग नमिसाउनुहोस्।
डाउनलोड 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 आदानप्रदान सम्हाल्ने क्यासहरूसम्म पुग्न सक्छ। भण्डारण गरिएको प्रतिक्रियालाई टनेलको श्रेय दिनुअघि त्यो वास्तवमा कहाँ छ जाँच्नुहोस्।