Satu situs web memerlukan proxy berbeda dari permintaan HTTPS Anda lainnya. Requests dapat menyatakan pilihan itu di dalam kamus proxy itu sendiri:

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()

Untuk tujuan tersebut, kunci khusus nama hostlah yang menang. Nama host HTTPS lain memakai entri seluruh skema. Nilainya menjelaskan koneksi proxy, jadi tujuan HTTPS dapat dipetakan dengan benar ke URL proxy HTTP. Bila ini adalah rute situs publik yang diizinkan tanpa akun proxy, daftar proxy HTTP dapat memasok kandidat untuk nilai-nilai itu; pertahankan setiap aturan tujuan secara eksplisit.

Cocokkan nama host, bukan URL sumber daya

Di Requests 2.32.5, kunci spesifik dibangun dari skema tujuan dan nama host yang diurai. Kunci itu tidak memuat jalur, kueri, atau port.

Menambahkan /monthly ke kunci kamus tidak akan membatasi aturan pada jalur itu. Demikian pula, https://reports.example:8443 bukan kunci khusus port yang dikenali pemilih ini. Aturan nama host juga berlaku ketika URL tujuan memakai port lain.

Tidak ada perluasan wildcard dalam pencarian ini. Aturan untuk reports.example tidak otomatis mencakup subdomain. Gunakan keputusan perutean eksplisit di luar kamus sederhana ini ketika kebijakan memerlukan pencocokan jalur, port, atau sufiks.

Ketahui cadangan mana yang berikutnya

Implementasi memeriksa kunci dalam urutan ini: scheme://hostname, scheme, all://hostname, lalu all. Jadi entri HTTPS seluruh skema lebih diutamakan daripada entri nama host untuk semua skema. Letakkan aturan nama host khusus skema paling depan dalam desain Anda bila itulah pengecualian yang dimaksud.

Perhitungkan juga bagaimana Session Anda menggabungkan nilai bawaan dan pengaturan turunan lingkungan. Mengirim kedua entri eksplisit ini bersama permintaan membuat rute yang dimaksud menjadi jelas, tetapi tidak menetapkan kebijakan untuk setiap skema tujuan lain.

Pengalihan dapat memunculkan nama host lain, dan pemilihan proxy juga relevan untuk tujuan baru itu. Bacalah aturan itu sebagai keputusan tentang setiap URL yang diminta, bukan sebagai rute permanen yang melekat pada halaman pertama.

Artikel terkait