Download 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)

ဤအပိုင်းသည် အပလီကေးရှင်းတွင် binary output stream ရှိပြီး HTTPS download_url ပေးသည်ဟု ယူဆသည်။ proxy အထောက်အထား မပါဘဲ ခွင့်ပြုထားသော အများသူငှာ download ကို စမ်းရန် opener တွင် HTTP proxy စာရင်းမှ HTTP endpoint ကိုယ်စားလှယ်လောင်းကို အသုံးပြုပါ၊ တောင်းဆိုချက်၏ cache သတ်မှတ်ချက် မပြောင်းလဲပါ။ ၎င်းသည် မူရင်း resource URL ကို ထိန်းထားပြီး တောင်းဆိုချက်လမ်းကြောင်းရှိ cache များကို ပြန်လည်အသုံးမပြုမီ အတည်ပြုရန် တောင်းဆိုသည်။

စစ်ဆေးခြင်းသည် သိမ်းဆည်းထားသော byte များကို ပြန်လည်အသုံးပြုနိုင်သည်

no-cache လက်ခံရရှိသော ကိုက်ညီသည့် cache သည် မူရင်းနှင့် အောင်မြင်စွာ အတည်ပြုခြင်းမရှိဘဲ သိမ်းဆည်းထားသော တုံ့ပြန်ချက်မှ ဤတောင်းဆိုချက်ကို မဖြည့်ဆည်းနိုင်ပါ။ မူရင်းသည် သိမ်းဆည်းထားသော ကိုယ်စားပြုမှု အကျုံးဝင်နေဆဲဖြစ်ကြောင်း အတည်ပြုနိုင်သည်၊ ထို့ကြောင့် လုပ်ဆောင်ချက်သည် မပြောင်းလဲသော ဖိုင်ကို မူရင်းမှ ပြန်ပို့ရန် မလိုအပ်ပါ။

တောင်းဆိုချက်ရှိ max-age=0 သည် သက်တမ်းကန့်သတ်ချက်ကို ဖော်ပြသည်။ အပလီကေးရှင်းသည် ထိုကန့်သတ်ချက်ထက် မဟောင်းသော တုံ့ပြန်ချက်ကို လိုချင်သောအခါ အသုံးဝင်သည်၊ သို့သော် ၎င်းသည် သိမ်းဆည်းမှု တားမြစ်ချက် မဟုတ်ပါ။ ယခုလေးတင် ဖန်တီးထားသော တုံ့ပြန်ချက်သည် ၎င်းကို ဖြည့်ဆည်းနိုင်သည်။

ကျပန်း query parameter ထည့်ခြင်းသည် မတူညီသော ပစ်မှတ် URI ကို တောင်းဆိုသည်။ ၎င်းသည် အခြား cache entry ဖန်တီးနိုင် သို့မဟုတ် အပလီကေးရှင်း၏ တုံ့ပြန်ချက်ကိုပင် ပြောင်းလဲနိုင်သည်။ query parameter ကို resource ၏ ရည်ရွယ်ထားသော interface ၏ အစိတ်အပိုင်းဖြစ်မှသာ အသုံးပြုပါ။

သာမန် HTTPS CONNECT အတွက် tunneling proxy သည် TLS အတွင်းရှိ ဤ header ကို မမြင်နိုင်ပါ။ မူဝါဒသည် မူရင်းနှင့် ကုဒ်ဖျက်ပြီးသော HTTP ဖလှယ်မှုကို ကိုင်တွယ်သော cache များထံ ရောက်နိုင်ဆဲဖြစ်သည်။ သိမ်းဆည်းထားသော တုံ့ပြန်ချက်ကို tunnel ဟု မသတ်မှတ်မီ ၎င်းသည် အမှန်တကယ် ဘယ်နေရာတွင် ရှိသည်ကို စစ်ဆေးပါ။

ဆက်စပ်ဆောင်းပါးများ