Sahkan semula muat turun melalui proksi dengan Cache-Control: no-cache
Minta respons yang disahkan tanpa menukar URL muat turun atau mengelirukan pengesahan semula dengan larangan penyimpanan.
URL muat turun adalah betul, tetapi proksi kongsi masih mempunyai respons tersimpan. Jika operasi memerlukan respons yang disahkan dengan asal, letakkan keperluan itu pada permintaan:
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)
Serpihan ini menganggap aplikasi memiliki strim output binari dan menyediakan HTTPS download_url. Untuk mencuba muat turun awam yang dibenarkan tanpa pengesahan proksi, gunakan calon titik akhir HTTP daripada senarai proksi HTTP dalam pembuka; keperluan cache permintaan kekal sama. Ia mengekalkan URL asal sumber sambil meminta cache pada laluan permintaan mengesahkan sebelum digunakan semula.
Pengesahan boleh menggunakan semula bait tersimpan
Cache yang mematuhi dan menerima no-cache tidak boleh memenuhi permintaan ini daripada respons tersimpan tanpa pengesahan berjaya dengan asal. Asal boleh mengesahkan bahawa perwakilan tersimpan masih sah, jadi operasi tidak perlu menghantar semula fail yang tidak berubah daripada asal.
max-age=0 pada permintaan menyatakan had umur. Ia berguna apabila aplikasi mahukan respons yang tidak lebih lama daripada had itu, tetapi ia bukan larangan penyimpanan. Respons yang baru dijana boleh memenuhinya.
Menambah parameter pertanyaan rawak meminta URI sasaran yang berbeza. Itu boleh menghasilkan entri cache lain atau bahkan mengubah respons aplikasi. Gunakan parameter pertanyaan hanya apabila ia sebahagian daripada antara muka sumber yang dimaksudkan.
Untuk HTTPS CONNECT biasa, proksi terowong tidak dapat melihat pengepala ini di dalam TLS. Dasar itu masih boleh sampai ke asal dan cache yang mengendalikan pertukaran HTTP yang dinyahsulit. Semak di mana respons tersimpan sebenarnya berada sebelum mengaitkannya dengan terowong.