Relatív átirányítás követése a proxyn keresztül
Oldja fel a relatív Location értéket az aktuális cél-URL-hez képest, a proxy címét kihagyva az URL-feloldásból.
A proxyn keresztül érkező válasz relatív Location értéket adhat vissza:
Location: ../new/
A modern HTTP itt URI-hivatkozást engedélyez. Oldja fel a választ előállító URL-hez képest. Ha az az URL https://docs.example/catalog/old/ volt, a fenti hivatkozás https://docs.example/catalog/new/ címet jelöli. A proxy hosztneve nem az alap.
A szokásos Python urllib-kéréseknél használja a könyvtár átirányításkezelőjét, ne pedig fűzze össze a karakterláncokat a proxy végpontja körül:
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()
Ehhez a proxyhitelesítés nélküli nyilvános dokumentumkéréshez a HTTP-proxylistából származó HTTP-jelölt helyettesítheti a példavégpontot, ha az útvonal engedélyezett. Az osztályok az urllib.request modulból származnak. Szokásos kezelője a támogatott átirányításokat a saját korlátain belül követi. A final_url a végső erőforrás-URL-t írja le, nem az eléréséhez használt közvetítőt.
Először oldja fel, aztán válassza ki a következő útvonalat
Az átirányítás megváltoztathatja a cél hosztját vagy sémáját. Ezért a célalapú proxyházirendnek ezt az új URL-t is értékelnie kell. Előfordulhat, hogy az első hosztnál működő útvonal nem a következő útvonala.
Amikor saját maga valósítja meg az átirányítások kezelését, használjon URI-hivatkozás-feloldást pontszegmens-kezeléssel. Tartsa meg a tényleges állapotkód metódusszabályait, és szabjon átirányítási korlátot. A Location hosztnévhez fűzése nem helyettesíti ezt a feloldási algoritmust.
Ha egy átirányítás meghiúsul, őrizze meg a kért URL-t, a válasz állapotát, a Location értékét és a feloldott következő URL-t. Ez a négy érték általában megmutatja, hogy a hiba az URL felépítéséhez vagy a később megkísérelt kapcsolathoz tartozik-e.