En Download iwwer e Proxy mat Cache-Control: no-cache nei validéieren
Frot eng validéiert Äntwert un, ouni d'Download-URL ze änneren an ouni Neivalidéierung mat engem Späicherverbuet ze verwiesselen.
D'Download-URL ass richteg, awer e gedeelte Proxy huet nach ëmmer eng gespäichert Äntwert. Wann d'Operatioun eng Äntwert brauch, déi beim Ursprong validéiert gëtt, setzt dës Fuerderung op d'Ufro:
from urllib.request import ProxyHandler, Request, build_opener
import shutil
opener = build_opener(ProxyHandler({
"https": "http://proxy.example:8080",
}))
request = Request(download_url, headers={"Cache-Control": "no-cache"})
with opener.open(request, timeout=15) as response:
shutil.copyfileobj(response, output)
Dëse Fragment setzt viraus, datt d'Applikatioun en binäre Ausgabestroum huet an eng HTTPS download_url liwwert. Fir en erlaabten ëffentlechen Download ouni Proxy-Authentifikatioun ze probéieren, benotzt en HTTP-Endpunkt-Kandidat aus der HTTP-Proxy-Lëscht am Opener; d'Cache-Fuerderung vun der Ufro bleift déi selwecht. Si behält d'Original-URL vum Ressource bäi a freet d'Caches um Ufrowee, virum Weiderbenotzen ze validéieren.
D'Validéierung kann déi gespäichert Byte weiderbenotzen
En entspriechende Cache, deen no-cache kritt, kann dës Ufro net aus enger gespäicherter Äntwert erfëllen, ouni eng erfollegräich Validéierung beim Ursprong. Den Ursprong kann bestätegen, datt d'gespäichert Representatioun nach gëlteg ass, dofir muss d'Operatioun eng onverännert Datei net nach eng Kéier vum Ursprong schécken.
En max-age=0 an enger Ufro dréckt eng Altersgrenz aus. Et ass nëtzlech, wann d'Applikatioun eng Äntwert wëll, déi net méi al wéi déi Grenz ass, awer et ass kee Verbuet vum Späicheren. Eng Äntwert, déi just erstallt gouf, kann et erfëllen.
En zufällege Query-Parameter bäizefügen freet eng aner Zil-URI un. Dat kann en aneren Cache-Andrag maachen oder souguer d'Äntwert vun der Applikatioun änneren. Benotzt en Query-Parameter nëmmen, wann en Deel vum virgesiwen Interface vum Ressource ass.
Bei gewéinlechem HTTPS CONNECT kann den Tunnelsproxy dësen Header bannent TLS net gesinn. D'Politik kann den Ursprong an d'Caches, déi den entschlësselten HTTP-Austausch verschaffen, trotzdem erreechen. Kontrolléiert, wou d'gespäicherte Äntwert tatsächlech läit, ier Dir se dem Tunnel zougeschreift.