Прокси арқылы алынған жауап салыстырмалы Location қайтаруы мүмкін:

Location: ../new/

Заманауи HTTP мұнда URI сілтемесіне рұқсат береді. Оны жауапты жасаған URL-ға қатысты шешіңіз. Егер ол URL https://docs.example/catalog/old/ болса, жоғарыдағы сілтеме https://docs.example/catalog/new/ нұсқайды. Проксидің хост атауы негіз емес.

Қарапайым Python urllib сұраныстары үшін прокси соңғы нүктесінің айналасында жолдарды біріктірудің орнына оның қайта бағыттау өңдеушісін пайдаланыңыз:

opener = build_opener(ProxyHandler({
    "https": "http://proxy.example:8080",
}))
with opener.open("https://docs.example/catalog/old/",
                 timeout=15) as response:
    final_url = response.geturl()

Прокси аутентификациясыз осы жалпыға ортақ құжат сұранысы үшін HTTP прокси тізімінен HTTP кандидаты маршрут рұқсат етілгенде мысал соңғы нүктесін алмастыра алады. Кластар urllib.request-тен келеді. Оның қалыпты өңдеушісі қолдау көрсетілетін қайта бағыттауларды өз шектерінде орындайды. final_url ресурстың түпкілікті URL-ын сипаттайды, оған жету үшін пайдаланылған делдалды емес.

Алдымен шешіңіз, содан кейін келесі маршрутты таңдаңыз

Қайта бағыттау мақсатты хостты немесе схеманы өзгертуі мүмкін. Сондықтан мақсатқа негізделген прокси саясаты сол жаңа URL-ды да бағалауы керек. Бірінші хост үшін жұмыс істеген маршрут келесісі үшін маршрут бола бермеуі мүмкін.

Қайта бағыттауды өңдеуді өзіңіз іске асырсаңыз, нүктелі сегменттерді өңдеумен URI сілтемесін шешуді пайдаланыңыз. Нақты мәртебе кодының әдіс ережелерін сақтаңыз және қайта бағыттау шегін белгілеңіз. Location-ды хост атауына тіркеу сол шешу алгоритмінің орнын баспайды.

Қайта бағыттау сәтсіз болса, сұралған URL-ды, жауап мәртебесін, Location мәнін және шешілген келесі URL-ды сақтаңыз. Бұл төрт мән әдетте қатенің URL құруға немесе кейін талпынылған байланысқа жататынын көрсетеді.

Қатысты мақалалар