De download-URL is korrekt, mar in dielde proxy hat noch altyd in bewarre antwurd. As de operaasje in antwurd nedich hat dat by de oarsprong falidearre is, set dy eask dan op it fersyk:

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)

Dit fragmint giet derfan út dat de applikaasje in binêre útfierstream hat en in HTTPS download_url leveret. Om in tastiene iepenbiere download sûnder proxy-autentikaasje te besykjen, brûkje in HTTP-einpuntkandidaat út 'e HTTP-proxylist yn 'e opener; de cache-eask fan it fersyk bliuwt itselde. It behâldt de oarspronklike URL fan 'e boarne wylst it caches op it fersykpaad freget om te falidearjen foar wergebrûk.

Falidaasje kin de bewarre bytes wer brûke

In foldwaande cache dy't no-cache ûntfangt, kin dit fersyk net út in bewarre antwurd foldwaan sûnder suksesfolle falidaasje by de oarsprong. De oarsprong kin befêstigje dat de bewarre foarstelling jildich bliuwt, sadat de operaasje in ûnferoare bestân net opnij fan 'e oarsprong stjoere hoecht.

In max-age=0 op in fersyk drukt in leeftydsgrins út. It is nuttich as de applikaasje in antwurd wol dat net âlder is as dy grins, mar it is gjin ferbod op opslach. In antwurd dat krekt makke is, kin it foldwaan.

It tafoegjen fan in willekeurige query-parameter freget in oare doel-URI. Dat kin in oare cache-yngong meitsje of sels it antwurd fan 'e applikaasje feroarje. Brûk in query-parameter allinnich as it diel is fan 'e bedoelde ynterface fan 'e boarne.

By gewoane HTTPS CONNECT kin de tunnelproxy dizze kop net binnen TLS sjen. It belied kin dochs de oarsprong en de caches berikke dy't de ûntsiferde HTTP-útwikseling behannelje. Kontrolearje wêr't it bewarre antwurd eins wennet foardat jo it oan 'e tunnel taskriuwe.

Relatearre artikelen