Rivalidoni një shkarkim përmes një proxy me Cache-Control: no-cache
Kërkoni një përgjigje të validuar pa ndryshuar URL-në e shkarkimit dhe pa e ngatërruar rivalidimin me një ndalim ruajtjeje.
URL-ja e shkarkimit është e saktë, por një proxy i përbashkët ka ende një përgjigje të ruajtur. Nëse operacioni kërkon një përgjigje të validuar me origjinën, vendoseni këtë kërkesë mbi kërkesën:
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)
Ky fragment supozon se aplikacioni zotëron një rrjedhë dalëse binare dhe ofron HTTPS download_url. Për të provuar një shkarkim publik të lejuar pa autentikim proxy, përdorni një kandidat pikë-fundore HTTP nga lista e proxy-ve HTTP në opener; kërkesa e cache-it të kërkesës mbetet e njëjtë. Ai ruan URL-në origjinale të burimit ndërsa u kërkon cache-ve në rrugën e kërkesës të validiojnë përpara ripërdorimit.
Validimi mund të ripërdorë bajtët e ruajtur
Një cache në përputhje që merr no-cache nuk mund ta plotësojë këtë kërkesë nga një përgjigje e ruajtur pa një validim të suksesshëm me origjinën. Origjina mund të konfirmojë se përfaqësimi i ruajtur mbetet i vlefshëm, prandaj operacioni nuk ka nevojë të ritransmetojë një skedar të pandryshuar nga origjina.
max-age=0 në një kërkesë shpreh një kufi moshe. Është i dobishëm kur aplikacioni dëshiron një përgjigje jo më të vjetër se ky kufi, por nuk është ndalim ruajtjeje. Një përgjigje e sapo gjeneruar mund ta plotësojë atë.
Shtimi i një parametri rastësor kërkese kërkon një URI tjetër objektiv. Kjo mund të prodhojë një tjetër hyrje cache ose madje të ndryshojë përgjigjen e aplikacionit. Përdorni një parametër kërkese vetëm kur është pjesë e ndërfaqes së synuar të burimit.
Për HTTPS CONNECT të zakonshëm, proxy-i tunel nuk mund ta shohë këtë header brenda TLS. Politika gjithsesi mund të arrijë origjinën dhe cache-t që trajtojnë shkëmbimin HTTP të dekriptuar. Kontrolloni ku jeton në të vërtetë përgjigja e ruajtur përpara se t'ia atribuoni tunelit.