Chuyển hướng của Python Requests: None so với giá trị proxy rỗng
Giữ ý định định tuyến trực tiếp rõ ràng xuyên suốt các lần chuyển hướng thay vì dựa vào giá trị None vốn loại bỏ một mục ánh xạ.
Nếu một yêu cầu trực tiếp chạm tới một chuyển hướng và lần trao đổi tiếp theo thất bại tại proxy, hãy xem xét quá trình chuyển tiếp. Requests dựng lại các thiết lập liên quan đến proxy cho các lần chuyển hướng và có thể tham vấn lại môi trường khi Session tin tưởng nó.
| Giá trị ánh xạ | Điều gì xảy ra trong quá trình hợp nhất |
|---|---|
None | Khóa bị loại bỏ, để lại một mục bị thiếu mà một lượt sau có thể điền từ môi trường. |
| Một chuỗi rỗng | Giá trị tường minh vẫn còn; nó có thể giữ lại ý định định tuyến trực tiếp cho lược đồ đó. |
Đối với một Session hiện có, hãy cung cấp các lược đồ đích liên quan đến thao tác trực tiếp:
response = session.get(
'https://example.com/start',
proxies={'http': '', 'https': ''},
timeout=15,
)Kiểm tra các ánh xạ bổ sung dành riêng cho máy chủ và bộ điều hợp tùy chỉnh nếu ứng dụng cung cấp chúng. Đầu vào định tuyến này không ghi đè mọi chính sách khả dĩ mà các thành phần đó thực thi.
Giữ mọi URL trong chẩn đoán
Ghi lại URL gốc, từng vị trí chuyển hướng, trạng thái phản hồi và giai đoạn thất bại. Việc chuyển từ HTTP sang HTTPS thay đổi khóa lược đồ liên quan; một máy chủ mới có thể nằm ngoài quy tắc bỏ qua của máy chủ đầu tiên. Một báo cáo chỉ chứa URL ban đầu sẽ che giấu cả hai lần chuyển tiếp.
Quan sát một phản hồi với việc theo dõi chuyển hướng bị tắt có thể phơi bày ranh giới. Hãy xem xét vị trí của nó như dữ liệu trước khi quyết định yêu cầu nó; đừng gửi thông tin xác thực gốc đến một đích mới một cách không phân biệt.
Một Session chuyên dụng với việc phát hiện môi trường bị tắt là một lựa chọn khác khi ứng dụng chủ động sở hữu mọi đầu vào định tuyến và tin cậy. Điều đó cũng ảnh hưởng đến việc phát hiện thông tin xác thực và CA tự động, vì vậy hãy chọn nó như một chính sách của ứng dụng chứ không phải một sửa chữa chuyển hướng thường lệ.