Eng Äntwert, déi duerch e Proxy ukomm ass, kann eng relativ Location zréckschécken:

Location: ../new/

Modernes HTTP erlaabt hei eng URI-Referenz. Léist se vis-à-vis vun der URL op, déi d'Äntwert erstallt huet. Wann déi URL https://docs.example/catalog/old/ war, bezeechent d'Referenz uewen https://docs.example/catalog/new/. Den Hostnumm vum Proxy ass net d'Basis.

Bei gewéinlechen Python-urllib-Ufroen benotzt säin Ëmleitungs-Handler, amplaz Stréng ronderëm den Proxy-Endpunkt ze verbannen:

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

Fir dës Ufro vun engem ëffentlechen Dokument ouni Proxy-Authentifikatioun kann en HTTP-Kandidat aus der HTTP-Proxy-Lëscht den Beispill-Endpunkt ersetzen, wann d'Route erlaabt ass. D'Klassen kommen aus urllib.request. Säin normale Handler verfollegt ënnerstëtzten Ëmleitungen a senge Grenzen. final_url beschreift déi endgülteg Ressourcen-URL, net den Intermédiaire, iwwer dee se erreecht gouf.

Fir d'éischt opléisen, duerno déi nächst Route wielen

Eng Ëmleitung kann den Destinatiouns-Host oder de Schema änneren. Dofir muss eng proxy-Politik op Basis vun der Destinatioun och déi nei URL bewäerten. Eng Route, déi fir den éischten Host funktionéiert huet, ass vläicht net d'Route fir den nächsten.

Wann Dir d'Behandlung vun Ëmleitungen selwer implementéiert, benotzt URI-Referenzopléisung mat Behandlung vun Punktsegmenter. Behaalt d'Methoderegelen vum tatsächleche Statuscode a setzt eng Ëmleitungslimite. D'Location un en Hostnumm unzehänken ass keen Ersatz fir deen Opléisungsalgorithmus.

Wann eng Ëmleitung feelt, behält déi ugefrote URL, den Äntwertsstatus, de Location-Wäert an déi opgeléist nächst URL. Dës véier Wäerter weisen normalerweis, ob de Feeler zur URL-Konstruktioun oder zur Verbindung gehéiert, déi duerno versicht gouf.

Ähnlech Artikelen