Ang tugon na natanggap sa pamamagitan ng proxy ay maaaring magbalik ng relatibong Location:

Location: ../new/

Pinapayagan ng modernong HTTP ang isang URI reference dito. Lutasin ito laban sa URL na gumawa ng tugon. Kung ang URL na iyon ay https://docs.example/catalog/old/, tinutukoy ng reference sa itaas ang https://docs.example/catalog/new/. Ang hostname ng proxy ay hindi ang base.

Para sa mga ordinaryong Python urllib na kahilingan, gamitin ang handler ng redirect nito sa halip na pagsamahin ang mga string sa paligid ng endpoint ng proxy:

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()

Para sa kahilingang ito sa pampublikong dokumento na walang proxy authentication, ang isang HTTP candidate mula sa listahan ng HTTP proxy ay makapapalit sa halimbawang endpoint kapag pinapayagan ang ruta. Ang mga klase ay nagmumula sa urllib.request. Sinusundan ng normal nitong handler ang mga sinusuportahang redirect sa loob ng mga limitasyon nito. Inilalarawan ng final_url ang huling URL ng resource, hindi ang tagapamagitan na ginamit upang maabot ito.

Lutasin muna, pagkatapos piliin ang susunod na ruta

Maaaring baguhin ng redirect ang host o scheme ng destinasyon. Kaya't ang patakarang nakabatay sa destinasyon ng proxy ay kailangan ding suriin ang bagong URL na iyon. Ang rutang gumana para sa unang host ay maaaring hindi ang ruta para sa susunod.

Kapag ikaw mismo ang nagpapatupad ng paghawak ng redirect, gamitin ang URI-reference resolution na may paghawak ng dot segments. Panatilihin ang mga tuntunin ng method ng aktwal na status code at maglagay ng limitasyon sa redirect. Ang pagdaragdag ng Location sa isang hostname ay hindi kapalit ng algorithm na iyon.

Kung mabigo ang isang redirect, itago ang hiniling na URL, status ng tugon, halaga ng Location at naresolbang susunod na URL. Ang apat na halagang iyon ay karaniwang nagpapakita kung ang kabiguan ay kabilang sa pagbuo ng URL o sa koneksyong sinubukan pagkatapos.

Kaugnay na mga artikulo