Μια αποθηκευμένη απόκριση που φέρει Vary: * αποτυγχάνει πάντα στην κανονική δοκιμή αντιστοίχισης Vary. Ο διαμεσολαβητής δεν μπορεί να συμπεράνει ότι ένα μεταγενέστερο αίτημα δικαιούται την ίδια αναπαράσταση μόνο επειδή το URL και οι ορατές κεφαλίδες του μοιάζουν.

Συγκρίνετε το με το εξής:

Vary: Accept-Encoding

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

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

Κάντε την πολιτική απόκρισης να περιγράφει την εφαρμογή

Αν ελέγχετε την προέλευση και η αναπαράσταση πράγματι διαφέρει μόνο ως προς αναγνωρίσιμες κεφαλίδες αιτήματος, ονομάστε αυτά τα πεδία με ακρίβεια. Μην αντικαθιστάτε το μπαλαντέρ με Accept-Encoding μόνο επειδή το παράδειγμα αυτό μπορεί να αποθηκευτεί: η εφαρμογή μπορεί να διαφέρει και ως προς τη γλώσσα, την εξουσιοδότηση ή πληροφορίες εκτός αυτών των κεφαλίδων.

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

Το vary_ignore_expire του Squid αφορά τον χειρισμό λήξης για αποκρίσεις που ποικίλλουν και την ιστορική συμπεριφορά HTTP. Δεν είναι διακόπτης που κάνει το μπαλαντέρ να ταιριάζει.

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