Fylgja hlutfallslegri endurbeiningu í gegnum proxy
Leysið hlutfallslegt Location gagnvart núverandi áfangastaðar-URL, og haldið proxy-heimilisfanginu utan URL-leysingarinnar.
Svar sem berst í gegnum proxy getur skilað hlutfallslegu Location:
Location: ../new/
Nútíma HTTP leyfir URI-tilvísun hér. Leysið hana gagnvart URL-inu sem bjó til svarið. Ef það URL var https://docs.example/catalog/old/, vísar tilvísunin hér að ofan á https://docs.example/catalog/new/. Hýsilnafn proxysins er ekki grunnurinn.
Fyrir venjulegar Python urllib-beiðnir skal nota endurbeiningarhandler þess í stað þess að tengja strengi utan um endapunkt proxysins:
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()
Fyrir þessa beiðni um opinbera skjöl án proxy-auðkenningar getur HTTP-frambjóðandi úr HTTP-proxylistanum komið í stað dæmisendapunktsins þegar leiðin er leyfð. Klassarnir koma úr urllib.request. Venjulegur handler hans fylgir studdum endurbeiningum innan sinna marka. final_url lýsir endanlegu URL auðlindarinnar, ekki milliliðnum sem notaður var til að ná henni.
Leysið fyrst, veljið síðan næstu leið
Endurbeining getur breytt áfangastaðarhýsilnum eða skemanu. Því þarf proxy-stefna sem byggir á áfangastað að meta það nýja URL líka. Leið sem virkaði fyrir fyrsta hýsilinn er kannski ekki leiðin fyrir þann næsta.
Þegar þú útfærir meðhöndlun endurbeininga sjálfur skaltu nota URI-tilvísunarleysingu með meðhöndlun punkthluta. Haltu aðferðarreglum raunverulega stöðukóðans og settu endurbeiningarmörk. Að bæta Location við hýsilnafn kemur ekki í stað þess leysialgríms.
Ef endurbeining mistekst skaltu varðveita umbeðið URL, stöðu svarsins, Location-gildið og leysta næsta URL. Þessi fjögur gildi sýna venjulega hvort mistökin tengjast URL-smíðinni eða tengingunni sem reynd var á eftir.