Jeśli bezpośrednie żądanie trafi na przekierowanie, a kolejna wymiana nie powiedzie się na proxy, zbadaj przejście. Requests odbudowuje ustawienia związane z proxy dla przekierowań i może ponownie odwołać się do środowiska, gdy Session mu ufa.

Wartość mapowaniaCo dzieje się podczas łączenia
NoneKlucz jest usuwany, pozostawiając brakujący wpis, który późniejszy przebieg może uzupełnić ze środowiska.
Pusty ciągJawna wartość pozostaje; może zachować intencję bezpośredniego trasowania dla tego schematu.

Dla istniejącej Session podaj schematy docelowe zaangażowane w bezpośrednią operację:

response = session.get(
    'https://example.com/start',
    proxies={'http': '', 'https': ''},
    timeout=15,
)

Sprawdź dodatkowe mapowania specyficzne dla hosta i niestandardowe adaptery, jeśli aplikacja je udostępnia. To wejście trasowania nie nadpisuje każdej możliwej polityki realizowanej przez te komponenty.

Zachowaj każdy URL w diagnostyce

Zapisz oryginalny URL, każdą lokalizację przekierowania, status odpowiedzi i etap, który zawodzi. Przejście z HTTP na HTTPS zmienia odpowiedni klucz schematu; nowy host może wypaść poza regułę obejścia pierwszego hosta. Raport zawierający tylko początkowy URL ukrywa oba przejścia.

Obserwacja jednej odpowiedzi z wyłączonym podążaniem za przekierowaniami może ujawnić granicę. Zbadaj jej lokalizację jako dane, zanim zdecydujesz się o nią poprosić; nie wysyłaj bezkrytycznie oryginalnych danych uwierzytelniających do nowego miejsca docelowego.

Dedykowana Session z wyłączonym wykrywaniem środowiska to kolejna opcja, gdy aplikacja świadomie posiada wszystkie wejścia trasowania i zaufania. Wpływa to również na automatyczne wykrywanie poświadczeń i CA, więc wybierz to jako politykę aplikacji, a nie rutynową naprawę przekierowania.

Powiązane artykuły