Жүктеу URL мекенжайы дұрыс, бірақ ортақ проксиде әлі де сақталған жауап бар. Егер операцияға түпнұсқамен тексерілген жауап қажет болса, бұл талапты сұрауға қойыңыз:

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)

Бұл фрагмент қосымшаның екілік шығыс ағыны бар және HTTPS download_url ұсынады деп есептейді. Прокси аутентификациясынсыз рұқсат етілген жария жүктеуді байқап көру үшін opener ішінде HTTP проксилер тізімінен HTTP шеткі нүкте үміткерін пайдаланыңыз; сұраудың кэш талабы өзгеріссіз қалады. Ол ресурстың түпнұсқа URL мекенжайын сақтайды және сұрау жолындағы кэштерден қайта пайдалану алдында тексеруді сұрайды.

Тексеру сақталған байттарды қайта пайдалана алады

no-cache алған сәйкес кэш бұл сұрауды сақталған жауаптан түпнұсқамен сәтті тексерусіз қанағаттандыра алмайды. Түпнұсқа сақталған көріністің әлі жарамды екенін растай алады, сондықтан операция өзгермеген файлды түпнұсқадан қайта жіберуі қажет емес.

Сұраудағы max-age=0 жастық шекті білдіреді. Бұл қосымша осы шектен ескі болмайтын жауап қалағанда пайдалы, бірақ сақтауға тыйым емес. Жаңа ғана жасалған жауап оны қанағаттандыра алады.

Кездейсоқ сұрау параметрін қосу басқа мақсатты URI сұрайды. Бұл басқа кэш жазбасын жасауы немесе тіпті қосымшаның жауабын өзгертуі мүмкін. Сұрау параметрін ресурстың жоспарланған интерфейсінің бөлігі болғанда ғана пайдаланыңыз.

Қарапайым HTTPS CONNECT үшін туннельдік прокси бұл тақырыпшаны TLS ішінде көре алмайды. Саясат бәрібір түпнұсқаға және шифры шешілген HTTP алмасуды өңдейтін кэштерге жете алады. Сакталған жауапты туннельге телу алдында оның шын мәнінде қайда тұратынын тексеріңіз.

Қатысты мақалалар