L'URL del download è corretto, ma un proxy condiviso ha ancora una risposta memorizzata. Se l'operazione richiede una risposta validata con l'origine, metti questo requisito sulla richiesta:

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)

Questo frammento presuppone che l'applicazione possieda un flusso di output binario e fornisca un download_url HTTPS. Per provare un download pubblico consentito senza autenticazione proxy, usa un candidato endpoint HTTP dalla lista di proxy HTTP nell'opener; il requisito di cache della richiesta resta lo stesso. Mantiene l'URL originale della risorsa chiedendo alle cache sul percorso della richiesta di validare prima del riuso.

La validazione può riutilizzare i byte memorizzati

Una cache conforme che riceve no-cache non può soddisfare questa richiesta da una risposta memorizzata senza una validazione riuscita con l'origine. L'origine può confermare che la rappresentazione memorizzata è ancora valida, quindi l'operazione non deve ritrasmettere un file invariato dall'origine.

Il max-age=0 di una richiesta esprime un limite di età. È utile quando l'applicazione vuole una risposta non più vecchia di quel limite, ma non è un divieto di archiviazione. Una risposta appena generata può soddisfarlo.

Aggiungere un parametro di query casuale richiede un URI di destinazione diverso. Ciò può produrre un'altra voce di cache o persino cambiare la risposta dell'applicazione. Usa un parametro di query solo quando fa parte dell'interfaccia prevista della risorsa.

Per un normale HTTPS CONNECT, il proxy tunnel non può vedere questa intestazione dentro TLS. La policy può comunque raggiungere l'origine e le cache che gestiscono lo scambio HTTP decifrato. Controlla dove risiede davvero la risposta memorizzata prima di attribuirla al tunnel.

Articoli correlati