Issegwi ridirezzjoni relattiva permezz tal-proxy
Issolvi Location relattiv fir-rigward tal-URL tad-destinazzjoni attwali, filwaqt li żżomm l-indirizz tal-proxy barra mis-soluzzjoni tal-URL.
Tweġiba li tasal permezz ta' proxy tista' tirritorna Location relattiv:
Location: ../new/
L-HTTP modern jippermetti referenza URI hawn. Issolviha fir-rigward tal-URL li pproduċiet it-tweġiba. Jekk dik l-URL kienet https://docs.example/catalog/old/, ir-referenza ta' fuq tidentifika https://docs.example/catalog/new/. L-isem tal-host tal-proxy mhuwiex il-bażi.
Għal talbiet Python urllib ordinarji, uża l-handler tar-ridirezzjoni tiegħu minflok ma tgħaqqad stringi madwar il-punt tat-tmiem tal-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()
Għal din it-talba għal dokument pubbliku mingħajr awtentikazzjoni tal-proxy, kandidat HTTP mill-lista tal-proxy HTTP jista' jissostitwixxi l-punt tat-tmiem eżempju meta r-rotta tkun permessa. Il-klassijiet ġejjin minn urllib.request. Il-handler normali tiegħu jsegwi ridirezzjonijiet appoġġjati fil-limiti tiegħu. final_url jiddeskrivi l-URL finali tar-riżorsa, mhux l-intermedjarju użat biex tintlaħaq.
L-ewwel issolvi, imbagħad agħżel ir-rotta li jmiss
Ridirezzjoni tista' tbiddel il-host jew l-iskema tad-destinazzjoni. Għalhekk politika tal-proxy bbażata fuq id-destinazzjoni trid tivvaluta wkoll dik l-URL il-ġdida. Rotta li ħadmet għall-ewwel host forsi mhix ir-rotta għal dak li jmiss.
Meta timplimenta l-ġestjoni tar-ridirezzjonijiet int stess, uża soluzzjoni ta' referenza URI bi ġestjoni ta' segmenti tal-punt. Żomm ir-regoli tal-metodu tal-kodiċi tal-istat attwali u imponi limitu ta' ridirezzjoni. Iż-żieda ta' Location ma' isem host mhijiex sostitut għal dak l-algoritmu tas-soluzzjoni.
Jekk ridirezzjoni tfalli, żomm l-URL mitluba, l-istat tat-tweġiba, il-valur Location u l-URL li jmiss solvuta. Dawn l-erba' valuri normalment juru jekk il-falliment jappartjenix għall-kostruzzjoni tal-URL jew għall-konnessjoni mċekkja wara.