प्रोक्सी मार्फत सापेक्ष रिडिरेक्ट पछ्याउनुहोस्
वर्तमान गन्तव्य 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 निर्माणको हो वा पछि प्रयास गरिएको जडानको भन्ने देखाउँछन्।