प्रॉक्सीमधून सापेक्ष रीडायरेक्टचा मागोवा घ्या
सध्याच्या लक्ष्य URL च्या संदर्भात सापेक्ष Location सोडवा, प्रॉक्सी पत्ता URL निराकरणाबाहेर ठेवून.
प्रॉक्सीमधून मिळालेला प्रतिसाद सापेक्ष 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 बांधणीची आहे की नंतर प्रयत्न केलेल्या कनेक्शनची.