כתובת ההורדה נכונה, אך לפרוקסי משותף עדיין יש תגובה מאוחסנת. אם הפעולה זקוקה לתגובה מאומתת מול המקור, הצבע את הדרישה הזו על הבקשה:

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)

קטע זה מניח שהיישום מחזיק בזרם פלט בינארי ומספק download_url מסוג HTTPS. כדי לנסות הורדה ציבורית מותרת בלי אימות פרוקסי, השתמש במועמד נקודת קצה HTTP מרשימת פרוקסי ה-HTTP בפותח; דרישת המטמון של הבקשה נשארת זהה. הוא שומר על כתובת המשאב המקורית ובמקביל מבקש מהמטמונים בנתיב הבקשה לאמת לפני שימוש חוזר.

האימות יכול לעשות שימוש חוזר בבתים המאוחסנים

מטמון תואם שמקבל no-cache אינו יכול לספק את הבקשה הזו מתגובה מאוחסנת בלי אימות מוצלח מול המקור. המקור יכול לאשר שהייצוג המאוחסן עדיין תקף, ולכן הפעולה אינה חייבת לשלוח שוב קובץ שלא השתנה מהמקור.

max-age=0 בבקשה מבטא מגבלת גיל. הוא שימושי כשההיישום רוצה תגובה שאינה ישנה מהמגבלה הזו, אך אין זה איסור אחסון. תגובה שזה עתה נוצרה יכולה לעמוד בו.

הוספת פרמטר שאילתה אקראי מבקשת URI יעד אחר. זה עלול ליצור רשומת מטמון נוספת או אפילו לשנות את תגובת היישום. השתמש בפרמטר שאילתה רק כשמדובר בחלק מהממשק המיועד של המשאב.

ב-HTTPS CONNECT רגיל, פרוקסי המנהרה אינו יכול לראות את הכותרת הזו בתוך TLS. עם זאת המדיניות יכולה להגיע למקור ולמטמונים שמטפלים בחילופי ה-HTTP המפוענחים. בדוק היכן התגובה המאוחסנת נמצאת באמת לפני שאתה מייחס אותה למנהרה.

מאמרים קשורים