Η
Google
εισάγει μια σημαντική αλλαγή στη συμπεριφορά Back/Forward Cache (BFCache) του
Chrome
, επιτρέποντας την αποθήκευση ιστοσελίδων στην κρυφή μνήμη, ακόμα κι αν ένας webmaster ορίσει να μην αποθηκεύεται μια σελίδα στην κρυφή μνήμη του προγράμματος περιήγησης.
“Το bfcache είναι μια κρυφή μνήμη στη μνήμη που αποθηκεύει ένα πλήρες στιγμιότυπο μιας σελίδας (συμπεριλαμβανομένου του σωρού JavaScript) καθώς ο χρήστης απομακρύνεται”, εξηγεί
Ο ιστότοπος web.dev της Google
.
“Με ολόκληρη τη σελίδα στη μνήμη, το πρόγραμμα περιήγησης μπορεί να την επαναφέρει γρήγορα και εύκολα εάν ο χρήστης αποφασίσει να επιστρέψει.”
Οι διαχειριστές του ιστότοπου μπορούν να καθορίσουν τον τρόπο αποθήκευσης των ιστοσελίδων τους στη μνήμη cache ενός προγράμματος περιήγησης χρησιμοποιώντας την κεφαλίδα “Cache-control:”. Μια επιλογή είναι να χρησιμοποιήσετε την κεφαλίδα “Cache-control: no-store”, η οποία αποτρέπει την αποθήκευση της απόκρισης του ιστότοπου στο πρόγραμμα περιήγησης.
Ωστόσο, τα προγράμματα περιήγησης δεν έχουν αποθηκεύσει ιστοσελίδες σε bfcache εάν χρησιμοποιούν αυτήν την κεφαλίδα, προκαλώντας προβλήματα απόδοσης όταν οι χρήστες επιστρέφουν σε αυτές τις σελίδες χρησιμοποιώντας τα κουμπιά του προγράμματος περιήγησης πίσω και προς τα εμπρός.
Η Google να αγνοήσει την κεφαλίδα “no-store” για την bfcache
Google
προτείνει
ότι οι ιστοσελίδες θα πρέπει να αποθηκεύονται στο BFCache ακόμη και όταν υπάρχει η κεφαλίδα “Cache-control: no-store” σε σελίδες
HTTPS
. Αυτή η προσέγγιση θα αύξανε τις περιπτώσεις άμεσης πλοήγησης πίσω/εμπρός, με αποτέλεσμα καλύτερη εμπειρία.
Ο μηχανικός της Google, Fergal Daly, λέει ότι ο πρωταρχικός στόχος
δεν είναι
να αποτραπεί η επαναφορά σελίδων που περιέχουν ευαίσθητα δεδομένα. Αντίθετα, η εστίαση είναι να αποφευχθεί η επαναφορά σελίδων με ευαίσθητα δεδομένα στα οποία ο χρήστης δεν θα πρέπει πλέον να έχει πρόσβαση.
Εάν δεν υπάρχουν αλλαγές στα cookies, η υπόθεση είναι ότι τα αιτήματα HTTP του προγράμματος περιήγησης, και επομένως οι αποφάσεις πρόσβασης, παραμένουν συνεπή. Η πρόκληση έγκειται στις αλλαγές από την πλευρά του διακομιστή με αποτέλεσμα την απώλεια πρόσβασης.
Για ιστότοπους που χρησιμοποιούν τεχνολογίες όπως το EventSource για να αντικατοπτρίζουν τις αλλαγές σε ανοιχτές σελίδες, αυτές οι ενημερώσεις θα ενεργοποιήσουν την έξοδο από το BFCache ή θα παραδώσουν συμβάντα αμέσως μετά την επαναφορά. Για ιστότοπους χωρίς μηχανισμούς άμεσης ενημέρωσης, υπάρχει ο κίνδυνος οι χρήστες να έχουν πρόσβαση σε παλιά δεδομένα, τα οποία η προτεινόμενη συμπεριφορά BFCache θα μπορούσε ενδεχομένως να επιδεινώσει.
Η Google εργάζεται για να αντιμετωπίσει αυτές τις ανησυχίες, διαθέτοντας τη λειτουργία για να δοκιμάσει πρώτα τα κανάλια και να λάβει αρκετά δεδομένα για να κατανοήσει τον αντίκτυπο.
Ορισμένοι έχουν εκφράσει ανησυχίες ότι αυτή η αλλαγή θα μπορούσε να αθετήσει τις υποσχέσεις στους προγραμματιστές ιστού που υποθέτουν ότι η κεφαλίδα “Cache-control: no-store” σημαίνει ότι το πρόγραμμα περιήγησης δεν θα αποθηκεύσει προσωρινά την ιστοσελίδα.
“Για μένα αυτό φαίνεται να αγγίζει μια ευαίσθητη περιοχή και δεν είμαι σίγουρος πώς θα γίνει αυτό στον πραγματικό κόσμο”, σχολίασε ο προγραμματιστής της Opera Daniel Bratell.
“Ακόμη και αν ο έλεγχος κρυφής μνήμης: το no-store χρησιμοποιείται υπερβολικά και οι αριθμοί που παραθέτετε φαίνεται να υποδεικνύουν ότι συμβαίνει αυτό, δεν έχει υπάρξει υπόσχεση στους προγραμματιστές ιστού ότι ένας τέτοιος πόρος θα εξαφανιστεί για πάντα μόλις ολοκληρωθεί η σελίδα δεν εμφανίζεται πλέον και είναι αυτή μια υπόσχεση που μπορεί εύλογα να παραβιαστεί;»
Ωστόσο, ο Daly λέει ότι αυτή η κεφαλίδα υπόσχεται μόνο να μην αποθηκεύει μια ιστοσελίδα στην κανονική προσωρινή μνήμη του προγράμματος περιήγησης, όχι στην bfcache.
“Δεν υπάρχει ρητή υπόσχεση ότι το CCNS αποτρέπει το BFCaching. Η κεφαλίδα CCNS, ή γενικά, όλες οι οδηγίες ελέγχου προσωρινής μνήμης, προορίζονται για τον έλεγχο της προσωρινής αποθήκευσης HTTP, επομένως η ρητή υπόσχεση αφορά την κρυφή μνήμη HTTP”, εξήγησε ο Daly.
“Το BFCache δεν αποτελεί μέρος της προσωρινής αποθήκευσης HTTP και οι προγραμματιστές δεν πρέπει να ερμηνεύουν την κεφαλίδα CCNS ως υπόσχεση ότι η σελίδα δεν θα αποθηκευτεί σε BFC.”
Με τον επαναπροσδιορισμό του τρόπου με τον οποίο το BFCache αλληλεπιδρά με την οδηγία “Cache-control: no-store”, οι προγραμματιστές του
Google Chrome
ελπίζουν να δημιουργήσουν μια πιο αποκριτική εμπειρία περιήγησης χωρίς να διακυβεύεται η ασφάλεια και το απόρρητο των χρηστών.
VIA:
bleepingcomputer.com
