Ndjekja e një ridrejtimi relativ përmes proxy-t
Zgjidhni një Location relativ kundrejt URL-së aktuale të destinacionit, duke e mbajtur adresën e proxy-t jashtë zgjidhjes së URL-së.
Një përgjigje e marrë përmes një proxy mund të kthejë një Location relativ:
Location: ../new/
HTTP modern lejon këtu një referencë URI. Zgjidheni atë kundrejt URL-së që prodhoi përgjigjen. Nëse ajo URL ishte https://docs.example/catalog/old/, referenca më sipër identifikon https://docs.example/catalog/new/. Emri i hostit të proxy-t nuk është baza.
Për kërkesat e zakonshme Python urllib, përdorni trajtuesin e ridrejtimit të tij në vend që të lidhni vargje rreth pikës fundore të proxy-t:
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()
Për këtë kërkesë për dokument publik pa autentikim proxy, një kandidat HTTP nga lista e proxy-ve HTTP mund të zëvendësojë pikën fundore shembull kur rruga lejohet. Klasat vijnë nga urllib.request. Trajtuesi i tij normal ndjek ridrejtimet e mbështetura brenda kufijve të tij. final_url përshkruan URL-në përfundimtare të burimit, jo ndërmjetësin e përdorur për ta arritur atë.
Zgjidhni së pari, pastaj zgjidhni rrugën tjetër
Një ridrejtim mund të ndryshojë hostin ose skemën e destinacionit. Prandaj një politikë proxy e bazuar në destinacion duhet të vlerësojë edhe atë URL të re. Një rrugë që funksionoi për hostin e parë mund të mos jetë rruga për të dytin.
Kur zbatoni vetë trajtimin e ridrejtimeve, përdorni zgjidhjen e referencave URI me trajtimin e segmenteve të pikës. Ruani rregullat e metodës të kodit aktual të statusit dhe vendosni një kufi ridrejtimi. Shtimi i Location në një emër hosti nuk zëvendëson atë algoritëm zgjidhjeje.
Nëse një ridrejtim dështon, mbani URL-në e kërkuar, statusin e përgjigjes, vlerën Location dhe URL-në tjetër të zgjidhur. Këto katër vlera zakonisht tregojnë nëse dështimi i përket ndërtimit të URL-së apo lidhjes së provuar më pas.