URL za preuzimanje je ispravan, ali deljeni proksi još uvek ima sačuvan odgovor. Ako operacija treba odgovor validiran kod izvora, stavite taj zahtev na sam zahtev:

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)

Ovaj isečak pretpostavlja da aplikacija poseduje binarni izlazni tok i pruža HTTPS download_url. Da biste isprobali dozvoljeno javno preuzimanje bez proksi autentifikacije, upotrebite kandidata za HTTP krajnju tačku sa liste HTTP proksija u openeru; zahtev za kešom ostaje isti. On čuva izvorni URL resursa dok traži od keševa na putu zahteva da validiraju pre ponovne upotrebe.

Validacija može ponovo da iskoristi sačuvane bajtove

Skladan keš koji primi no-cache ne može da zadovolji ovaj zahtev iz sačuvanog odgovora bez uspešne validacije kod izvora. Izvor može da potvrdi da sačuvana reprezentacija ostaje važeća, pa operacija ne mora ponovo da prenese nepromenjenu datoteku sa izvora.

max-age=0 u zahtevu izražava ograničenje starosti. Korisno je kada aplikacija želi odgovor koji nije stariji od tog ograničenja, ali nije zabrana skladištenja. Odgovor koji je upravo generisan može da ga zadovolji.

Dodavanje slučajnog parametra upita traži drugi ciljni URI. To može da stvori još jedan zapis u kešu ili čak da promeni odgovor aplikacije. Parametar upita koristite samo kada je deo predviđenog interfejsa resursa.

Za obični HTTPS CONNECT, tunelski proksi ne može da vidi ovaj zaglavlje unutar TLS-a. Pravilo ipak može da stigne do izvora i keševa koji obrađuju dešifrovanu HTTP razmenu. Proverite gde sačuvani odgovor zaista živi pre nego što ga pripišete tunelu.

Povezani članci