एक वेबसाइट को आपके बाकी HTTPS अनुरोधों से अलग प्रॉक्सी चाहिए। Requests यह चुनाव प्रॉक्सी शब्दकोश में ही व्यक्त कर सकता है:

routes = {
    "https://reports.example": "http://reports-proxy.example:8080",
    "https": "http://default-proxy.example:8080",
}
response = requests.get(
    "https://reports.example/monthly",
    proxies=routes,
    timeout=(5, 20),
)
response.raise_for_status()

उस गंतव्य के लिए होस्टनाम-विशिष्ट कुंजी जीतती है। कोई अन्य HTTPS होस्टनाम स्कीम-व्यापी प्रविष्टि का उपयोग करता है। मान प्रॉक्सी कनेक्शन का वर्णन करते हैं, इसलिए एक HTTPS गंतव्य सही ढंग से HTTP प्रॉक्सी URL पर मैप हो सकता है। जब ये प्रॉक्सी खातों के बिना अनुमत सार्वजनिक-साइट मार्ग हों, तो HTTP प्रॉक्सी सूची उन मानों के लिए उम्मीदवार दे सकती है; हर गंतव्य नियम स्पष्ट रखें।

होस्टनाम का मिलान करें, संसाधन URL का नहीं

Requests 2.32.5 में विशिष्ट कुंजी गंतव्य की स्कीम और पार्स किए गए होस्टनाम से बनती है। इसमें पथ, क्वेरी या पोर्ट शामिल नहीं होता।

शब्दकोश कुंजी में /monthly जोड़ने से नियम उस पथ तक सीमित नहीं होगा। इसी तरह, https://reports.example:8443 ऐसी पोर्ट-विशिष्ट कुंजी नहीं है जिसे यह चयनकर्ता पहचानता हो। होस्टनाम नियम तब भी लागू होता है जब गंतव्य URL कोई दूसरा पोर्ट उपयोग करता है।

इस लुकअप में कोई वाइल्डकार्ड विस्तार नहीं है। reports.example के लिए नियम किसी सबडोमेन को अपने आप नहीं ढकता। जब नीति को पथ, पोर्ट या प्रत्यय मिलान चाहिए, तब इस सरल शब्दकोश के बाहर स्पष्ट रूटिंग निर्णय लें।

जानें आगे कौन-सा फ़ॉलबैक आता है

कार्यान्वयन कुंजियों को इस क्रम में जाँचता है: scheme://hostname, scheme, all://hostname, फिर all। इसलिए स्कीम-व्यापी HTTPS प्रविष्टि सभी स्कीमों की होस्टनाम प्रविष्टि पर पूर्वता लेती है। जब यही इच्छित अपवाद हो, तो अपने डिज़ाइन में स्कीम-विशिष्ट होस्टनाम नियम पहले रखें।

यह भी ध्यान दें कि आपका Session डिफ़ॉल्ट और पर्यावरण-व्युत्पन्न सेटिंग्स को कैसे मिलाता है। इन दो स्पष्ट प्रविष्टियों को अनुरोध के साथ भेजने से उनके इच्छित मार्ग स्पष्ट होते हैं, पर किसी अन्य गंतव्य स्कीम के लिए नीति तय नहीं होती।

एक रीडायरेक्ट दूसरा होस्टनाम ला सकता है, और प्रॉक्सी चयन उस नए गंतव्य के लिए भी प्रासंगिक है। नियम को पहले पृष्ठ से जुड़े स्थायी मार्ग के रूप में नहीं, बल्कि हर अनुरोधित URL के बारे में निर्णय के रूप में पढ़ें।

संबंधित लेख