Web Caches
Η προσωρινή μνήμη ιστού (Web Cache) είναι ένας ενδιάμεσος αποθηκευτικός χώρος μεταξύ του user (Client) και του Server. Όταν ο user ζητά έναν Static Resource, η cache ελέγχει αν διαθέτει ήδη αντίγραφο. Αν το έχει, το επιστρέφει άμεσα στον user, γεγονός που ονομάζεται Cache Hit. Αν δεν το έχει, συμβαίνει Cache Miss και η cache προωθεί το αίτημα (Request) στον Server. Ο Server στέλνει το Response, η οποία αποθηκεύεται στην cache και στη συνέχεια παραδίδεται στον user. Έτσι, τα επόμενα αιτήματα για τον ίδιο Static Resource εξυπηρετούνται γρηγορότερα.
Η προσωρινή αποθήκευση (Caching) αποτελεί σήμερα ένα σημαντικό μέρος της παράδοσης περιεχομένου στο διαδίκτυο. Τα Δίκτυα Διανομής Περιεχομένου (Content Delivery Networks – CDNs) χρησιμοποιούν caching για να αποθηκεύουν αντίγραφα περιεχομένου σε πολλούς Servers σε διαφορετικές περιοχές του κόσμου. Όταν ένας user ζητά περιεχόμενο, το CDN το εξυπηρετεί από τον πλησιέστερο server, μειώνοντας τον χρόνο φόρτωσης (Load Time) και την απόσταση που πρέπει να διανύσουν τα δεδομένα (Data).
Cache Key
Όταν η προσωρινή μνήμη (Cache) λαμβάνει ένα αίτημα HTTP (HTTP Request), πρέπει να αποφασίσει αν διαθέτει ήδη αποθηκευμένη την αντίστοιχη απάντηση (Cached Response) ή αν πρέπει να προωθήσει το αίτημα στον διακομιστή προέλευσης (Origin Server).
Για να το αποφασίσει, δημιουργεί ένα Cache Key, δηλαδή ένα μοναδικό αναγνωριστικό που βασίζεται σε στοιχεία του αιτήματος, όπως:
- URL Path (διαδρομή URL)
- Query Parameters (παράμετροι ερωτήματος)
- HTTP Headers (κεφαλίδες HTTP)
- Content Type (τύπος περιεχομένου)
Αν το Cache Key ενός νέου αιτήματος ταιριάζει με αυτό ενός προηγούμενου αιτήματος, η cache θεωρεί ότι πρόκειται για τον ίδιο πόρο και επιστρέφει την αποθηκευμένη απόκριση (Cache Hit). Διαφορετικά, ζητά το περιεχόμενο από τον Origin Server (Cache Miss).
Παράδειγμα:
- Request 1:
https://site.com/products?id=10 - Cache Key:
/products?id=10
Αν αργότερα σταλεί το ίδιο αίτημα:
- Request 2:
https://site.com/products?id=10
το Cache Key είναι ίδιο, επομένως η cache επιστρέφει το αποθηκευμένο αποτέλεσμα χωρίς να επικοινωνήσει με τον Origin Server.
Cache Rules
Κανόνες Cache (Cache Rules) είναι οι κανόνες που καθορίζουν ποιο περιεχόμενο θα αποθηκευτεί στην προσωρινή μνήμη (Cache) και για πόσο χρονικό διάστημα.
Συνήθως αποθηκεύονται στατικοί πόροι (Static Resources), όπως εικόνες, αρχεία CSS και JavaScript, επειδή αλλάζουν σπάνια και χρησιμοποιούνται από πολλούς χρήστες. Αντίθετα, το δυναμικό περιεχόμενο (Dynamic Content) συνήθως δεν αποθηκεύεται, επειδή μπορεί να περιέχει προσωπικά δεδομένα ή να αλλάζει συχνά.
Οι cache χρησιμοποιούν διάφορους τύπους κανόνων:
- Κανόνες επέκτασης αρχείου (Static File Extension Rules): Αποθηκεύουν αρχεία με συγκεκριμένες καταλήξεις, όπως
.css,.js,.jpgκαι.png. - Κανόνες καταλόγου (Static Directory Rules): Αποθηκεύουν περιεχόμενο από συγκεκριμένους φακέλους, όπως
/staticή/assets. - Κανόνες ονόματος αρχείου (File Name Rules): Αποθηκεύουν συγκεκριμένα αρχεία που αλλάζουν σπάνια, όπως
robots.txtκαιfavicon.ico.
Επιπλέον, μπορούν να υπάρχουν και προσαρμοσμένοι κανόνες (Custom Rules) που βασίζονται σε παραμέτρους URL, κεφαλίδες HTTP ή άλλα κριτήρια.
Παράδειγμα:
Αν υπάρχει κανόνας που λέει ότι όλα τα αρχεία .css αποθηκεύονται στην cache:
site.com/style.css→ αποθηκεύεται.site.com/profile.php→ δεν αποθηκεύεται, επειδή είναι δυναμικό περιεχόμενο.
Έτσι, οι κανόνες cache βοηθούν στην ταχύτερη φόρτωση των ιστοσελίδων και στη μείωση του φόρτου του διακομιστή.