یک وب‌سایت به پروکسی متفاوتی از بقیهٔ درخواست‌های 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 می‌تواند به‌درستی به یک URL پروکسی HTTP نگاشت شود. وقتی این‌ها مسیرهای مجاز سایت عمومی بدون حساب‌های پروکسی هستند، فهرست پروکسی HTTP می‌تواند برای آن مقادیر نامزد فراهم کند؛ هر قاعدهٔ مقصد را صریح نگه دارید.

نام میزبان را تطبیق دهید، نه URL منبع را

در Requests 2.32.5 کلید مشخص از طرح‌وارهٔ مقصد و نام میزبان تجزیه‌شده ساخته می‌شود. مسیر، پرس‌وجو یا درگاه را در بر نمی‌گیرد.

افزودن /monthly به کلید فرهنگ، قاعده را به آن مسیر محدود نمی‌کند. به‌همین‌ترتیب، https://reports.example:8443 کلید مخصوص درگاهی نیست که این انتخاب‌گر بشناسد. قاعدهٔ نام میزبان وقتی URL مقصد از درگاه دیگری استفاده می‌کند هم اعمال می‌شود.

در این جست‌وجو هیچ گسترش نویسهٔ عام وجود ندارد. قاعده‌ای برای reports.example به‌طور خودکار یک زیردامنه را پوشش نمی‌دهد. وقتی سیاست به تطبیق مسیر، درگاه یا پسوند نیاز دارد، از یک تصمیم مسیریابی صریح بیرون این فرهنگ ساده استفاده کنید.

بدانید کدام بازگشت بعدی است

پیاده‌سازی کلیدها را به این ترتیب بررسی می‌کند: scheme://hostname، scheme، all://hostname، سپس all. بنابراین یک مدخل HTTPS طرح‌واره‌ای بر مدخل نام میزبان همهٔ طرح‌واره‌ها اولویت دارد. وقتی آن استثنای موردنظر است، قاعدهٔ نام میزبان مخصوص طرح‌واره را در طراحی خود اول بگذارید.

به این هم توجه کنید که Session شما پیش‌فرض‌ها و تنظیمات برگرفته از محیط را چگونه ادغام می‌کند. فرستادن این دو مدخل صریح همراه درخواست، مسیرهای موردنظرشان را روشن می‌کند، اما برای هر طرح‌وارهٔ مقصد دیگری سیاستی تعیین نمی‌کند.

یک تغییرمسیر می‌تواند نام میزبان دیگری وارد کند، و انتخاب پروکسی برای آن مقصد جدید هم مربوط است. قاعده را تصمیمی دربارهٔ هر URL درخواستی بخوانید، نه مسیری دائمی چسبیده به صفحهٔ اول.

مقالات مرتبط