Το only-if-cached ζητά αποθηκευμένη απάντηση από τον διαμεσολαβητή
Ζητήστε από μια συνεργαζόμενη προσωρινή μνήμη HTTP υπάρχουσα απάντηση και ερμηνεύστε το 504 χωρίς να θεωρήσετε την οδηγία έλεγχο εξόδου σε επίπεδο δικτύου.
Για ένα αίτημα που πρέπει να χρησιμοποιήσει ήδη αποθηκευμένη απάντηση, το 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 που η μνήμη μπορεί να επεξεργαστεί.