Cache-Control: no-cache ile proxy üzerinden indirmeyi yeniden doğrulayın
İndirme URL'sini değiştirmeden doğrulanmış bir yanıt isteyin ve yeniden doğrulamayı depolama yasağıyla karıştırmayın.
İndirme URL'si doğru, ancak paylaşılan bir proxy'de hâlâ saklanmış bir yanıt var. İşlem, kaynakla doğrulanmış bir yanıt gerektiriyorsa bu koşulu isteğe koyun:
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)
Bu parça, uygulamanın ikili bir çıktı akışına sahip olduğunu ve HTTPS download_url sağladığını varsayar. Proxy kimlik doğrulaması olmadan izin verilen bir genel indirmeyi denemek için opener'da HTTP proxy listesinden bir HTTP uç noktası adayı kullanın; isteğin önbellek koşulu aynı kalır. Özgün kaynak URL'sini korurken istek yolundaki önbelleklerden yeniden kullanımdan önce doğrulama ister.
Doğrulama saklanan baytları yeniden kullanabilir
no-cache alan uyumlu bir önbellek, kaynakla başarılı bir doğrulama olmadan bu isteği saklanmış bir yanıttan karşılayamaz. Kaynak, saklanan gösterimin hâlâ geçerli olduğunu doğrulayabilir, bu yüzden işlemin değişmemiş bir dosyayı kaynaktan yeniden iletmesi gerekmez.
Bir isteğin max-age=0 değeri bir yaş sınırı ifade eder. Uygulama bu sınırdan daha eski olmayan bir yanıt istediğinde yararlıdır, ancak depolama yasağı değildir. Yeni oluşturulmuş bir yanıt bunu karşılayabilir.
Rastgele bir sorgu parametresi eklemek farklı bir hedef URI ister. Bu, başka bir önbellek girdisi oluşturabilir, hatta uygulamanın yanıtını değiştirebilir. Sorgu parametresini yalnızca kaynağın amaçlanan arayüzünün parçası olduğunda kullanın.
Sıradan HTTPS CONNECT için tünel proxy'si bu başlığı TLS içinde göremez. İlke yine de kaynağa ve şifresi çözülmüş HTTP alışverişini işleyen önbelleklere ulaşabilir. Saklanan yanıtı tünele atfetmeden önce gerçekte nerede durduğunu kontrol edin.