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.

Kapcsolódó cikkek