Yuklab olish URL manzili to'g'ri, lekin umumiy proksida hali ham saqlangan javob bor. Agar amal manba bilan tekshirilgan javobni talab qilsa, shu talabni so'rovga qo'ying:

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 parcha ilovada ikkilik chiqish oqimi bor va u HTTPS download_url taqdim etadi deb hisoblaydi. Proksi autentifikatsiyasisiz ruxsat etilgan ochiq yuklab olishni sinab ko'rish uchun opener ichida HTTP proksilar ro'yxatidan HTTP so'nggi nuqta nomzodini ishlating; so'rovning kesh talabi o'zgarmaydi. U resursning asl URL manzilini saqlab qoladi va so'rov yo'lidagi keshlardan qayta ishlatishdan oldin tekshirishni so'raydi.

Tekshirish saqlangan baytlarni qayta ishlatishi mumkin

no-cache olgan mos kesh bu so'rovni saqlangan javobdan manba bilan muvaffaqiyatli tekshiruvsiz qondira olmaydi. Manba saqlangan tasvirning hali ham amalda ekanligini tasdiqlashi mumkin, shuning uchun amal o'zgarmagan faylni manbadan qayta yuborishi shart emas.

So'rovdagi max-age=0 yosh chegarasini ifodalaydi. Ilova shu chegaradan eski bo'lmagan javobni xohlaganda foydali, lekin bu saqlash taqiqi emas. Hozir yaratilgan javob ham buni qondirishi mumkin.

Tasodifiy so'rov parametri qo'shish boshqa maqsadli URI ni so'raydi. Bu boshqa kesh yozuvini yaratishi yoki hatto ilovaning javobini o'zgartirishi mumkin. So'rov parametrini faqat resursning mo'ljallangan interfeysining qismi bo'lganda ishlating.

Oddiy HTTPS CONNECT uchun tunnel proksisi bu sarlavhani TLS ichida ko'ra olmaydi. Siyosat baribir manbaga va shifri ochilgan HTTP almashinuvini boshqaradigan keshlarga yetib borishi mumkin. Saqlangan javobni tunnelga bog'lashdan oldin uning aslida qayerda ekanligini tekshiring.

O'xshash maqolalar