प्रॉक्सी से प्राप्त प्रतिक्रिया सापेक्ष Location लौटा सकती है:

Location: ../new/

आधुनिक HTTP यहाँ URI संदर्भ की अनुमति देता है। इसे उस URL के सापेक्ष हल करें जिसने प्रतिक्रिया उत्पन्न की। यदि वह URL https://docs.example/catalog/old/ था, तो ऊपर का संदर्भ https://docs.example/catalog/new/ को दर्शाता है। प्रॉक्सी का होस्टनाम आधार नहीं है।

सामान्य Python urllib अनुरोधों के लिए प्रॉक्सी एंडपॉइंट के आसपास स्ट्रिंग जोड़ने के बजाय उसके रीडायरेक्ट हैंडलर का उपयोग करें:

opener = build_opener(ProxyHandler({
    "https": "http://proxy.example:8080",
}))
with opener.open("https://docs.example/catalog/old/",
                 timeout=15) as response:
    final_url = response.geturl()

प्रॉक्सी प्रमाणीकरण के बिना इस सार्वजनिक दस्तावेज़ अनुरोध के लिए HTTP प्रॉक्सी सूची से कोई HTTP उम्मीदवार मार्ग अनुमत होने पर उदाहरण एंडपॉइंट को बदल सकता है। कक्षाएँ urllib.request से आती हैं। इसका सामान्य हैंडलर अपनी सीमाओं के भीतर समर्थित रीडायरेक्ट का पालन करता है। final_url अंतिम संसाधन URL का वर्णन करता है, उस तक पहुँचने में प्रयुक्त मध्यस्थ का नहीं।

पहले हल करें, फिर अगला मार्ग चुनें

रीडायरेक्ट गंतव्य होस्ट या स्कीम बदल सकता है। इसलिए गंतव्य-आधारित प्रॉक्सी नीति को वह नया URL भी आंकना चाहिए। पहले होस्ट के लिए काम करने वाला मार्ग अगले के लिए न हो सकता है।

जब आप स्वयं रीडायरेक्ट हैंडलिंग लागू करें, तो डॉट-सेगमेंट हैंडलिंग के साथ URI-संदर्भ रिज़ॉल्यूशन का उपयोग करें। वास्तविक स्थिति कोड के मेथड नियम बनाए रखें और रीडायरेक्ट सीमा लागू करें। होस्टनाम पर Location जोड़ना उस रिज़ॉल्यूशन एल्गोरिथ्म का विकल्प नहीं है।

यदि रीडायरेक्ट विफल हो, तो अनुरोधित URL, प्रतिक्रिया स्थिति, Location मान और हल किया गया अगला URL रखें। ये चार मान आमतौर पर दिखाते हैं कि विफलता URL निर्माण की है या उसके बाद प्रयास किए गए कनेक्शन की।

संबंधित लेख