Nedlastingsadressen er riktig, men en delt proxy har fortsatt et lagret svar. Hvis operasjonen krever et svar som er validert mot opprinnelsen, må du legge det kravet på forespørselen:

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)

Dette utdraget forutsetter at applikasjonen råder over en binær utstrøm og leverer en HTTPS download_url. For å prøve en tillatt offentlig nedlasting uten proxy-autentisering kan du bruke en HTTP-endepunktkandidat fra HTTP-proxylisten i openeren; cache-kravet i forespørselen er uendret. Det beholder ressursens opprinnelige adresse og ber samtidig hurtiglagrene på forespørselsstien om å validere før gjenbruk.

Validering kan bruke de lagrede bytene om igjen

Et samsvarende hurtiglager som mottar no-cache, kan ikke oppfylle denne forespørselen fra et lagret svar uten vellykket validering mot opprinnelsen. Opprinnelsen kan bekrefte at den lagrede representasjonen fortsatt er gyldig, slik at operasjonen ikke trenger å sende en uendret fil på nytt fra opprinnelsen.

En forespørsels max-age=0 uttrykker en aldersgrense. Det er nyttig når applikasjonen ønsker et svar som ikke er eldre enn denne grensen, men det er ikke et forbud mot lagring. Et svar som nettopp ble laget, kan oppfylle det.

Å føye til en tilfeldig spørreparameter ber om en annen mål-URI. Det kan gi en ny hurtiglageroppføring eller endre svaret fra applikasjonen. Bruk en spørreparameter bare når den er en del av ressursens tiltenkte grensesnitt.

For vanlig HTTPS CONNECT kan ikke tunnelproxien se denne headeren inne i TLS. Retningslinjen kan likevel nå opprinnelsen og hurtiglagrene som håndterer den dekrypterte HTTP-utvekslingen. Sjekk hvor det lagrede svaret faktisk befinner seg før du tilskriver det tunnelen.

Relaterte artikler