ກວດສອບຄືນການດາວໂຫລດຜ່ານ proxy ດ້ວຍ Cache-Control: no-cache
ຮ້ອງຂໍການຕອບສະໜອງທີ່ກວດສອບແລ້ວ ໂດຍບໍ່ປ່ຽນ 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)
ສ່ວນນີ້ສົມມຸດວ່າແອັບພລິເຄຊັນມີ stream ຜົນອອກແບບຖານສອງ ແລະ ສະໜອງ HTTPS download_url. ເພື່ອລອງການດາວໂຫລດສາທາລະນະທີ່ອະນຸຍາດໂດຍບໍ່ມີການຢືນຢັນ proxy, ໃຫ້ໃຊ້ຜູ້ສະໝັກຈຸດປາຍ HTTP ຈາກລາຍຊື່ proxy HTTP ໃນ opener; ເງື່ອນໄຂແຄຊຂອງຄຳຮ້ອງຂໍຍັງຄືເກົ່າ. ມັນຮັກສາ URL ຂອງຊັບພະຍາກອນເດີມ ພ້ອມກັບຂໍໃຫ້ແຄຊຕາມເສັ້ນທາງຄຳຮ້ອງຂໍກວດສອບກ່ອນນຳໃຊ້ຄືນ.
ການກວດສອບສາມາດນຳໃຊ້ໄບຕ໌ທີ່ເກັບໄວ້ຄືນໄດ້
ແຄຊທີ່ສອດຄ່ອງເມື່ອໄດ້ຮັບ no-cache ບໍ່ສາມາດຕອບສະໜອງຄຳຮ້ອງຂໍນີ້ຈາກການຕອບສະໜອງທີ່ເກັບໄວ້ໂດຍບໍ່ມີການກວດສອບກັບຕົ້ນກຳເນີດທີ່ສຳເລັດ. ຕົ້ນກຳເນີດສາມາດຢືນຢັນວ່າຕົວແທນທີ່ເກັບໄວ້ຍັງໃຊ້ໄດ້, ດັ່ງນັ້ນການດຳເນີນງານບໍ່ຈຳເປັນຕ້ອງສົ່ງໄຟລ໌ທີ່ບໍ່ປ່ຽນແປງຈາກຕົ້ນກຳເນີດຄືນ.
max-age=0 ໃນຄຳຮ້ອງຂໍສະແດງຂີດຈຳກັດອາຍຸ. ມັນມີປະໂຫຍດເມື່ອແອັບພລິເຄຊັນຕ້ອງການການຕອບສະໜອງທີ່ບໍ່ເກົ່າກວ່າຂີດຈຳກັດນັ້ນ, ແຕ່ມັນບໍ່ແມ່ນການຫ້າມເກັບ. ການຕອບສະໜອງທີ່ຫາກໍ່ສ້າງຂຶ້ນສາມາດຕອບສະໜອງມັນໄດ້.
ການເພີ່ມພາລາມິເຕີຄຳຖາມແບບສຸ່ມຮ້ອງຂໍ URI ເປົ້າໝາຍອື່ນ. ສິ່ງນັ້ນອາດສ້າງລາຍການແຄຊອື່ນ ຫຼື ແມ່ນແຕ່ປ່ຽນການຕອບສະໜອງຂອງແອັບພລິເຄຊັນ. ໃຊ້ພາລາມິເຕີຄຳຖາມສະເພາະເມື່ອມັນເປັນສ່ວນໜຶ່ງຂອງອິນເຕີເຟສທີ່ຕັ້ງໃຈຂອງຊັບພະຍາກອນ.
ສຳລັບ HTTPS CONNECT ທົ່ວໄປ, proxy ອຸໂມງບໍ່ສາມາດເຫັນຫົວຂໍ້ນີ້ພາຍໃນ TLS. ນະໂຍບາຍຍັງສາມາດໄປຮອດຕົ້ນກຳເນີດ ແລະ ແຄຊທີ່ຈັດການການແລກປ່ຽນ HTTP ທີ່ຖອດລະຫັດແລ້ວ. ກວດເບິ່ງວ່າການຕອບສະໜອງທີ່ເກັບໄວ້ຢູ່ໃສແທ້ ກ່ອນຈະໂທດອຸໂມງ.