Поново валидирајте преузимање преко проксија уз Cache-Control: no-cache
Затражите валидиран одговор без промене URL-а за преузимање и без мешања ревалидације са забраном складиштења.
URL за преузимање је исправан, али дељени прокси још увек има сачуван одговор. Ако операција треба одговор валидиран код извора, ставите тај захтев на сам захтев:
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)
Овај исечак претпоставља да апликација поседује бинарни излазни ток и пружа HTTPS download_url. Да бисте испробали дозвољено јавно преузимање без прокси аутентификације, употребите кандидата за HTTP крајњу тачку са листе HTTP проксија у opener-у; захтев за кешом остаје исти. Он чува изворни URL ресурса док тражи од кешева на путу захтева да валидирају пре поновне употребе.
Валидација може поново да искористи сачуване бајтове
Складан кеш који прими no-cache не може да задовољи овај захтев из сачуваног одговора без успешне валидације код извора. Извор може да потврди да сачувана репрезентација остаје важећа, па операција не мора поново да пренесе непромењену датотеку са извора.
max-age=0 у захтеву изражава ограничење старости. Корисно је када апликација жели одговор који није старији од тог ограничења, али није забрана складиштења. Одговор који је управо генерисан може да га задовољи.
Додавање случајног параметра упита тражи други циљни URI. То може да створи још један запис у кешу или чак да промени одговор апликације. Параметар упита користите само када је део предвиђеног интерфејса ресурса.
За обични HTTPS CONNECT, тунелски прокси не може да види ово заглавље унутар TLS-а. Правило ипак може да стигне до извора и кешева који обрађују дешифровану HTTP размену. Проверите где сачувани одговор заиста живи пре него што га припишете тунелу.