Ponovno overite prenos prek posredniškega strežnika s Cache-Control: no-cache
Zahtevajte preverjen odgovor brez spreminjanja URL-ja prenosa in brez zamenjave ponovnega preverjanja s prepovedjo shranjevanja.
URL prenosa je pravilen, a skupni posredniški strežnik ima še vedno shranjen odgovor. Če operacija potrebuje odgovor, preverjen pri izvoru, to zahtevo vstavite v zahtevo:
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)
Ta odlomek predpostavlja, da ima aplikacija binarni izhodni tok in zagotavlja HTTPS download_url. Če želite preizkusiti dovoljen javni prenos brez preverjanja pristnosti posrednika, v openerju uporabite kandidata za končno točko HTTP s seznama posredniških strežnikov HTTP; zahteva po predpomnilniku ostane enaka. Ohrani izvirni URL vira in hkrati zahteva, da predpomnilniki na poti zahteve preverijo pred ponovno uporabo.
Preverjanje lahko znova uporabi shranjene bajte
Skladni predpomnilnik, ki prejme no-cache, ne more izpolniti te zahteve iz shranjenega odgovora brez uspešnega preverjanja pri izvoru. Izvor lahko potrdi, da shranjena predstavitev ostaja veljavna, zato operaciji ni treba znova poslati nespremenjene datoteke z izvora.
max-age=0 v zahtevi izraža omejitev starosti. Uporabno je, ko aplikacija želi odgovor, ki ni starejši od te omejitve, vendar ni prepoved shranjevanja. Pravkar ustvarjen odgovor jo lahko izpolni.
Dodajanje naključnega parametra poizvedbe zahteva drug ciljni URI. To lahko ustvari drug vnos v predpomnilniku ali celo spremeni odgovor aplikacije. Parameter poizvedbe uporabite le, kadar je del predvidenega vmesnika vira.
Pri običajnem HTTPS CONNECT tunelski posrednik ne more videti te glave znotraj TLS. Pravilo lahko vseeno doseže izvor in predpomnilnike, ki obdelujejo odšifrirano izmenjavo HTTP. Preverite, kje shranjeni odgovor v resnici živi, preden ga pripišete tunelu.