Прокси аркылуу алынган жооп салыштырмалуу 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 курууга же кийин аракет кылынган байланышка таандык экенин көрсөтөт.

Тектеш макалалар