Cache-Control: no-cache සමඟ proxy හරහා බාගැනීම නැවත තහවුරු කරන්න
බාගැනීමේ URL වෙනස් නොකර තහවුරු කළ ප්රතිචාරයක් ඉල්ලන්න, නැවත තහවුරු කිරීම ගබඩා තහනම සමඟ මිශ්ර නොකරන්න.
බාගැනීමේ URL නිවැරදිය, නමුත් හවුල් proxy එකක තවමත් ගබඩා කළ ප්රතිචාරයක් ඇත. මෙහෙයුමට මූලය සමඟ තහවුරු කළ ප්රතිචාරයක් අවශ්ය නම්, එම කොන්දේසිය ඉල්ලීම මත තබන්න:
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 ලබා දෙන බවයි. proxy සත්යාපනයකින් තොරව අනුමත පොදු බාගැනීමක් උත්සාහ කිරීමට, opener තුළ HTTP proxy ලැයිස්තුවවෙන් HTTP අන්ත ලක්ෂ්ය අපේක්ෂකයක් භාවිත කරන්න; ඉල්ලීමේ cache කොන්දේසිය එලෙසම පවතී. එය මූල සම්පත් URL රඳවා ගනිමින් ඉල්ලීම් මාර්ගයේ ඇති cache වලට නැවත භාවිතයට පෙර තහවුරු කරන ලෙස ඉල්ලයි.
තහවුරු කිරීමට ගබඩා කළ බයිට් නැවත භාවිත කළ හැක
no-cache ලැබෙන අනුකූල cache එකකට මූලය සමඟ සාර්ථක තහවුරු කිරීමකින් තොරව ගබඩා කළ ප්රතිචාරයකින් මෙම ඉල්ලීම ඉටු කළ නොහැක. ගබඩා කළ නිරූපණය තවමත් වලංගු බව මූලයට තහවුරු කළ හැක, එබැවින් මෙහෙයුමට වෙනස් නොවූ ගොනුවක් මූලයෙන් නැවත යැවීමට අවශ්ය නැත.
ඉල්ලීමක max-age=0 වයස් සීමාවක් ප්රකාශ කරයි. යෙදුමට එම සීමාවට වඩා පැරණි නොවන ප්රතිචාරයක් අවශ්ය විට එය ප්රයෝජනවත් වේ, නමුත් එය ගබඩා තහනමක් නොවේ. දැන් නිපදවූ ප්රතිචාරයකට එය ඉටු කළ හැක.
අහඹු query පරාමිතියක් එකතු කිරීම වෙනත් ඉලක්ක URI එකක් ඉල්ලයි. එය තවත් cache පිවිසුමක් සෑදිය හැක හෝ යෙදුමේ ප්රතිචාරය පවා වෙනස් කළ හැක. query පරාමිතියක් සම්පත්රයේ අපේක්ෂිත අතුරුමුහුණතෙහි කොටසක් වන විට පමණක් භාවිත කරන්න.
සාමාන්ය HTTPS CONNECT සඳහා, tunneling proxy ට TLS ඇතුළත මෙම ශීර්ෂය දැකිය නොහැක. ප්රතිපත්තිය තවමත් මූලයට සහ විග්රහ කළ HTTP හුවමාරුව හසුරුවන cache වලට ළඟා විය හැක. ගබඩා කළ ප්රතිචාරය tunnel එකට ආරෝපණය කිරීමට පෙර එය ඇත්තෙන්ම කොහේදැයි පරීක්ෂා කරන්න.