Για ένα αίτημα που πρέπει να χρησιμοποιήσει ήδη αποθηκευμένη απάντηση, το HTTP ορίζει Cache-Control: only-if-cached.

Ο πελάτης μπορεί να το στείλει μέσω διαμεσολαβητή προσωρινής μνήμης HTTP:

curl --proxy http://127.0.0.1:3128 \
  --header 'Cache-Control: only-if-cached' \
  --include http://www.example.org/report

Μια μνήμη που σέβεται αυτή την οδηγία πρέπει να επιστρέψει αποθηκευμένη απάντηση συμβατή με τους υπόλοιπους περιορισμούς του αιτήματος, ή 504 Gateway Timeout όταν δεν μπορεί να το ικανοποιήσει. Εδώ το 504 μπορεί να εκφράζει πολιτική μνήμης και όχι αποτυχημένη σύνδεση TCP με τον διαμεσολαβητή.

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

Αυτό διαφέρει επίσης από τη ρύθμιση λειτουργίας επικύρωσης εκτός σύνδεσης της μνήμης. Το only-if-cached μεταφέρεται στο μεμονωμένο αίτημα και εκφράζει τι είναι διατεθειμένος να δεχτεί ο πελάτης.

Χρησιμοποιήστε μνήμη που υποστηρίζει τη συμπεριφορά. Μια αγνοημένη οδηγία αιτήματος δεν είναι τείχος προστασίας, άρα η αυστηρή αποτροπή ανερχόμενης κίνησης απαιτεί πολιτική δικτύου ή διακομιστή που επιβάλλεται ανεξάρτητα.

Ένας συνηθισμένος διαμεσολαβητής HTTPS CONNECT δεν βλέπει τις κρυπτογραφημένες κεφαλίδες HTTP ούτε διατηρεί αντικείμενα σελίδας από αυτό το τούνελ. Το παράδειγμα χρησιμοποιεί σκόπιμα έναν απλό πόρο HTTP που η μνήμη μπορεί να επεξεργαστεί.

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