L'URL de descàrrega és correcta, però un proxy compartit encara té una resposta emmagatzemada. Si l'operació necessita una resposta validada amb l'origen, posa aquest requisit a la sol·licitud:

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)

Aquest fragment assumeix que l'aplicació té un flux de sortida binari i proporciona un download_url HTTPS. Per provar una descàrrega pública permesa sense autenticació de proxy, fes servir un candidat a punt final HTTP de la llista de proxys HTTP a l'opener; el requisit de memòria cau de la sol·licitud es manté igual. Conserva l'URL original del recurs mentre demana a les memòries cau del camí de la sol·licitud que validin abans de reutilitzar.

La validació pot reutilitzar els bytes emmagatzemats

Una memòria cau conforme que rebi no-cache no pot satisfer aquesta sol·licitud a partir d'una resposta emmagatzemada sense una validació correcta amb l'origen. L'origen pot confirmar que la representació emmagatzemada continua sent vàlida, així que l'operació no cal retransmetre un fitxer sense canvis des de l'origen.

El max-age=0 d'una sol·licitud expressa un límit d'edat. És útil quan l'aplicació vol una resposta que no superi aquest límit, però no és una prohibició d'emmagatzematge. Una resposta acabada de generar el pot complir.

Afegir un paràmetre de consulta aleatori demana un URI objectiu diferent. Això pot produir una altra entrada de memòria cau o fins i tot canviar la resposta de l'aplicació. Fes servir un paràmetre de consulta només quan formi part de la interfície prevista del recurs.

Per a HTTPS CONNECT corrent, el proxy de túnel no pot veure aquesta capçalera dins de TLS. La política encara pot arribar a l'origen i a les memòries cau que gestionen l'intercanvi HTTP desxifrat. Comprova on viu realment la resposta emmagatzemada abans d'atribuir-la al túnel.

Articles relacionats