Τι είναι το session storage και σε τι διαφέρει από το local storage;

Το session storage αποθηκεύει δεδομένα στον browser όσο διαρκεί η καρτέλα. Μάθε πώς λειτουργεί, πώς διαφέρει από το local storage και σε τι χρησιμεύει.

Πρόχειρο

Το session storage αποθηκεύει δεδομένα στον browser μόνο όσο είναι ανοιχτή μια καρτέλα. Μάθε πώς λειτουργεί, σε τι διαφέρει από το local storage και σε τι το χρησιμοποιούν οι ιστοσελίδες.

Τι θα γινόταν αν μια ιστοσελίδα μπορούσε να θυμάται μόνο όσα χρειάζεται για να κυλήσει ομαλά η επίσκεψή σου, χωρίς να κρατά τίποτα αφού φύγεις; Χωρίς δεδομένα που περισσεύουν, χωρίς αποθηκευμένες προτιμήσεις, τίποτα που να μένει. Μόνο η σωστή πληροφορία τη σωστή στιγμή, και μετά χάνεται. Αυτή είναι η ιδέα πίσω από το session storage, και είναι πιο χρήσιμο απ' ό,τι ακούγεται αρχικά.

Αν έχεις διαβάσει ήδη το κεφάλαιο για το local storage, ξέρεις ότι κρατά τα δεδομένα ζωντανά ακόμα και αφού κλείσει ο browser. Το session storage ακολουθεί την αντίθετη προσέγγιση. Είναι σχεδιασμένο να είναι προσωρινό, και αυτό δεν είναι περιορισμός. Είναι σκόπιμο χαρακτηριστικό.

Τι είναι το session storage;

Το session storage είναι ένας τύπος αποθήκευσης browser που αποθηκεύει δεδομένα για τη διάρκεια της συνεδρίας μιας καρτέλας του browser. Όσο η καρτέλα μένει ανοιχτή, τα δεδομένα είναι διαθέσιμα. Τη στιγμή που ο επισκέπτης κλείνει την καρτέλα, το session storage καθαρίζει αυτόματα. Αν ανοίξεις την ίδια ιστοσελίδα σε νέα καρτέλα, το session storage ξεκινά από την αρχή, χωρίς τίποτα μέσα.

Όπως το local storage, το session storage λειτουργεί ως αποθήκη κλειδιού-τιμής. Οι ιστοσελίδες γράφουν δεδομένα με μια ετικέτα και μια τιμή και τα ανακτούν αναζητώντας την ετικέτα. Η διαφορά είναι καθαρά στο πόσο διαρκούν τα δεδομένα. Το local storage μένει επ' αόριστον. Το session storage ζει και πεθαίνει μαζί με την καρτέλα.

Σε τι διαφέρει το session storage από το local storage;

Η βασική διαφορά είναι η διάρκεια. Τα δεδομένα του local storage μένουν στον browser μέχρι να διαγραφούν χειροκίνητα. Τα δεδομένα του session storage εξαφανίζονται τη στιγμή που κλείνει η καρτέλα. Έτσι ταιριάζουν σε διαφορετικές περιπτώσεις.

Το session storage είναι επίσης ειδικό για κάθε καρτέλα. Αν ένας επισκέπτης έχει την ίδια ιστοσελίδα ανοιχτή σε δύο διαφορετικές καρτέλες, κάθε καρτέλα έχει το δικό της ξεχωριστό session storage. Δεν μοιράζονται δεδομένα μεταξύ τους. Το local storage, αντίθετα, μοιράζεται ανάμεσα σε όλες τις καρτέλες της ίδιας ιστοσελίδας στον ίδιο browser.

Σε τι χρησιμοποιούν οι ιστοσελίδες το session storage;

Παρακολούθηση προόδου μέσα σε μια συνεδρία

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

Προσωρινή κατάσταση διεπαφής

Το αν μια πλαϊνή στήλη είναι ανοιχτή, ποια καρτέλα είναι επιλεγμένη αυτή τη στιγμή ή πόσο έχει κυλήσει ένας επισκέπτης σε μια μεγάλη λίστα: όλες αυτές είναι προσωρινές καταστάσεις που έχει νόημα να κρατιούνται στη διάρκεια μιας επίσκεψης, αλλά δεν έχουν αξία όταν ο επισκέπτης φύγει. Το session storage τις χειρίζεται καθαρά.

Σύντομη διάρκεια ζωής για ευαίσθητο πλαίσιο

Για οτιδήποτε σχετίζεται με το τρέχον πλαίσιο ενός χρήστη στη διάρκεια μιας επίσκεψης, το session storage είναι η πιο ασφαλής επιλογή σε σχέση με το local storage, γιατί τα δεδομένα καθαρίζουν μόνα τους. Δεν υπάρχει κίνδυνος ευαίσθητο πλαίσιο να μείνει στον browser αφού τελειώσει η επίσκεψη.

Πότε να χρησιμοποιείς session storage και πότε local storage

Η επιλογή καταλήγει σε μία ερώτηση: χρειάζεται αυτά τα δεδομένα να επιβιώσουν πέρα από την τρέχουσα συνεδρία της καρτέλας; Αν ναι, το local storage είναι το σωστό εργαλείο. Αν τα δεδομένα έχουν σημασία μόνο στην τρέχουσα επίσκεψη και δεν πρέπει να μεταφερθούν παρακάτω, το session storage ταιριάζει καλύτερα.

Για ευαίσθητα δεδομένα, κανένα από τα δύο δεν είναι κατάλληλο. Οι κωδικοί, τα στοιχεία πληρωμής και τα προσωπικά στοιχεία πρέπει πάντα να διαχειρίζονται στην πλευρά του διακομιστή με σωστή κρυπτογράφηση SSL, και ποτέ να μην αποθηκεύονται στον browser. Για πλήρη εικόνα όλων των επιλογών αποθήκευσης του browser και της σύγκρισής τους, διάβασε τύποι αποθήκευσης του browser.

Συχνές ερωτήσεις

Καθαρίζει το session storage όταν κλείνει ο browser ή μόνο η καρτέλα;

Το session storage καθαρίζει όταν κλείνει η συγκεκριμένη καρτέλα. Αν ένας επισκέπτης έχει πολλές καρτέλες ανοιχτές και κλείσει μία, καθαρίζει μόνο το session storage αυτής της καρτέλας. Οι άλλες καρτέλες κρατούν το δικό τους session storage. Αν κλείσει ολόκληρος ο browser, σβήνεται όλο το session storage όλων των καρτελών, γιατί όλες οι ενεργές συνεδρίες τελειώνουν εκείνη τη στιγμή.

Μπορούν δύο καρτέλες της ίδιας ιστοσελίδας να μοιράζονται session storage;

Όχι. Το session storage είναι απομονωμένο ανά καρτέλα. Αν η ίδια ιστοσελίδα είναι ανοιχτή σε δύο ξεχωριστές καρτέλες, κάθε καρτέλα έχει το δικό της session storage που η άλλη καρτέλα δεν μπορεί να διαβάσει ή να γράψει. Αυτό διαφέρει από το local storage, που μοιράζεται ανάμεσα σε όλες τις καρτέλες της ίδιας ιστοσελίδας στον ίδιο browser.

Είναι το session storage πιο ασφαλές από το local storage;

Είναι ελαφρά καλύτερο για ευαίσθητο πλαίσιο, γιατί τα δεδομένα καθαρίζουν αυτόματα όταν κλείνει η καρτέλα. Είναι όμως ακόμα προσβάσιμο από κάθε script που τρέχει στη σελίδα, οπότε δεν είναι κατάλληλο για κωδικούς, προσωπικά στοιχεία ή στοιχεία πληρωμής. Ο αυτόματος καθαρισμός μειώνει το διάστημα έκθεσης, αλλά ισχύουν οι ίδιοι βασικοί κανόνες ασφαλείας. Τα ευαίσθητα δεδομένα ανήκουν στον διακομιστή και όχι στον browser.

Τι γίνεται με το session storage αν ο επισκέπτης ανανεώσει τη σελίδα;

Η ανανέωση της σελίδας δεν καθαρίζει το session storage. Τα δεδομένα μένουν και μετά από επαναφορτώσεις σελίδας, όσο η καρτέλα μένει ανοιχτή. Έτσι το session storage είναι χρήσιμο για να κρατά κατάσταση ανάμεσα σε ανανεώσεις στην ίδια επίσκεψη, όπως μια φόρμα που έχει συμπληρωθεί μερικώς, χωρίς αυτά τα δεδομένα να μεταφέρονται αφού φύγει ο επισκέπτης.

Πόσα δεδομένα χωράει το session storage;

Το session storage έχει περίπου την ίδια χωρητικότητα με το local storage, γύρω στα 5 με 10 megabytes ανά καρτέλα, ανάλογα με τον browser. Αυτό είναι υπεραρκετό για προσωρινές καταστάσεις διεπαφής και δεδομένα φορμών που βρίσκονται σε εξέλιξη. Για μεγαλύτερα σύνολα δεδομένων ή αρχεία, ταιριάζει καλύτερα το IndexedDB.

Πρέπει να ρυθμίσω το session storage στην ιστοσελίδα μου;

Όχι, αν χρησιμοποιείς δημιουργό ιστοσελίδων. Το session storage χρησιμοποιείται εσωτερικά από την πλατφόρμα για πράγματα όπως η διαχείριση της κατάστασης φορμών και οι προτιμήσεις μέσα στη συνεδρία. Τρέχει στο παρασκήνιο χωρίς καμία ρύθμιση από σένα. Με τον δημιουργό ιστοσελίδων του WEMASY, η πλατφόρμα αναλαμβάνει αυτόματα όλες τις αποφάσεις για την αποθήκευση του browser, ώστε οι επισκέπτες σου να έχουν ομαλή εμπειρία χωρίς καμία ρύθμιση.

Βάλ’ το αμέσως σε εφαρμογή
στη δική σου ιστοσελίδα.

Ξεκίνα δωρεάν με το WEMASY και φτιάξε τη σελίδα σου σε λίγα λεπτά.