Το 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. Για να δοκιμάσετε μια επιτρεπόμενη δημόσια λήψη χωρίς έλεγχο ταυτότητας διαμεσολαβητή, χρησιμοποιήστε έναν υποψήφιο τελικού σημείου HTTP από τη λίστα διαμεσολαβητών HTTP στο opener· η απαίτηση προσωρινής μνήμης του αιτήματος παραμένει ίδια. Διατηρεί το αρχικό URL του πόρου και ζητά από τις προσωρινές μνήμες στη διαδρομή του αιτήματος να επικυρώσουν πριν από την επαναχρησιμοποίηση.

Η επικύρωση μπορεί να επαναχρησιμοποιήσει τα αποθηκευμένα byte

Μια σύμμορφη προσωρινή μνήμη που λαμβάνει no-cache δεν μπορεί να ικανοποιήσει αυτό το αίτημα από αποθηκευμένη απάντηση χωρίς επιτυχή επικύρωση με την προέλευση. Η προέλευση μπορεί να επιβεβαιώσει ότι η αποθηκευμένη αναπαράσταση παραμένει έγκυρη, οπότε η λειτουργία δεν χρειάζεται να μεταδώσει ξανά ένα αμετάβλητο αρχείο από την προέλευση.

Το max-age=0 σε ένα αίτημα εκφράζει ένα όριο ηλικίας. Είναι χρήσιμο όταν η εφαρμογή θέλει απάντηση όχι παλαιότερη από αυτό το όριο, αλλά δεν είναι απαγόρευση αποθήκευσης. Μια απάντηση που μόλις δημιουργήθηκε μπορεί να το ικανοποιήσει.

Η προσθήκη τυχαίας παραμέτρου ερωτήματος ζητά διαφορετικό URI-στόχο. Αυτό μπορεί να δημιουργήσει άλλη καταχώριση προσωρινής μνήμης ή ακόμη να αλλάξει την απάντηση της εφαρμογής. Χρησιμοποιήστε παράμετρο ερωτήματος μόνο όταν αποτελεί μέρος της προβλεπόμενης διεπαφής του πόρου.

Για συνηθισμένο HTTPS CONNECT, ο διαμεσολαβητής σήραγγας δεν μπορεί να δει αυτή την κεφαλίδα μέσα στο TLS. Η πολιτική μπορεί παρ' όλα αυτά να φτάσει στην προέλευση και στις προσωρινές μνήμες που χειρίζονται την αποκρυπτογραφημένη ανταλλαγή HTTP. Ελέγξτε πού ζει πραγματικά η αποθηκευμένη απάντηση πριν την αποδώσετε στη σήραγγα.

Σχετικά άρθρα