Η περίοδος λειτουργίας και ο τοπικός χώρος αποθήκευσης είναι μέθοδοι αποθήκευσης του προγράμματος περιήγησης που σας επιτρέπουν να αποθηκεύετε δεδομένα μαζί με αιτήματα HTTP χωρίς κατάσταση. Είναι μια εναλλακτική λύση για την αποθήκευση που βασίζεται σε cookie και έχουν πολλές χρήσεις στην ανάπτυξη ιστού.
Ενώ λειτουργούν με παρόμοιο τρόπο, υπάρχουν σημαντικές διαφορές που πρέπει να γνωρίζετε.
Τοπική αποθήκευση και αποθήκευση περιόδου λειτουργίας: Ποιες είναι οι χρήσεις τους;
Η τοπική αποθήκευση και η αποθήκευση περιόδου λειτουργίας είναι JavaScript API που μπορείτε να χρησιμοποιήσετε για να αποθηκεύσετε δεδομένα στην πλευρά του πελάτη. Επιτρέπουν σε έναν ιστότοπο να αποθηκεύει δεδομένα στο πρόγραμμα περιήγησης και δίνουν εντολή στο πρόγραμμα περιήγησης να έχει πρόσβαση σε αυτά αργότερα.
Ανάλογα με τις ανάγκες σας, μπορείτε να χρησιμοποιήσετε τοπικό χώρο αποθήκευσης ή αποθήκευση συνεδρίας για την αποθήκευση δεδομένων. Και οι δύο μέθοδοι αποθήκευσης είναι παρόμοιες με τα cookies αλλά χωρίς Το ίδιο απόρρητο αφορά τα cookies που περιβάλλουν
. Επομένως, οι περισσότεροι σύγχρονοι ιστότοποι προτιμούν να χρησιμοποιούν μόνο μεθόδους αποθήκευσης ιστού ή να τις συνδυάζουν με cookies ως εναλλακτική λύση.Σε αντίθεση με τα cookies, η τοπική αποθήκευση και η αποθήκευση περιόδου λειτουργίας δεν στέλνουν δεδομένα στον διακομιστή μέσω κεφαλίδων HTTP. Θα πρέπει να τα χρησιμοποιείτε μόνο για λειτουργικότητα από την πλευρά του πελάτη.
Επιπλέον, ο τοπικός χώρος αποθήκευσης και ο αποθηκευτικός χώρος περιόδου σύνδεσης έχουν όριο αποθήκευσης περίπου 5 MB ανά τομέα. Παρέχουν περισσότερο χώρο αποθήκευσης από τα cookies, τα οποία έχουν χωρητικότητα μόνο 4 KiB ανά cookie.
Τι είναι το Session Storage;
Μια περίοδος περιήγησης προσεγγίζει τη χρήση ενός ιστότοπου από εσάς. Εάν επισκέπτεστε έναν ιστότοπο, περιηγηθείτε για λίγο και μετά απενεργοποιήσετε τον υπολογιστή σας, μπορείτε να σκεφτείτε εκείνη τη στιγμή ως μία μόνο περίοδο λειτουργίας. Η διαμόρφωση του προγράμματος περιήγησής σας μπορεί να το αλλάξει αυτό με ανεπαίσθητους τρόπους, αλλά μια περίοδος λειτουργίας στοχεύει να αντιπροσωπεύει το κομμάτι του χρόνου που αλληλεπιδράτε με έναν ιστότοπο.
Ο χώρος αποθήκευσης περιόδου λειτουργίας είναι μοναδικός για κάθε καρτέλα του προγράμματος περιήγησης. Εάν ανοίξετε μια νέα καρτέλα και πλοηγηθείτε στον ίδιο ιστότοπο, θα ξεκινήσετε μια νέα συνεδρία με τον δικό της αποθηκευτικό χώρο. Ωστόσο, εάν χρησιμοποιείτε μια δυνατότητα "διπλότυπης καρτέλας" στο πρόγραμμα περιήγησής σας, ενδέχεται να επαναχρησιμοποιηθεί η ίδια περίοδος λειτουργίας. Δεν μπορείς να βασίζεσαι πολύ στις συγκεκριμένες λεπτομέρειες μιας «συνεδρίας». Αντίθετα, εστιάστε στην βασική ιδέα: η αποθήκευση περιόδων σύνδεσης είναι προσωρινή.
Η αποθήκευση περιόδου λειτουργίας έχει ενσωματωμένες μεθόδους API για εργασία με δεδομένα ζεύγους κλειδιών/τιμών. Μπορείτε να αποθηκεύσετε δεδομένα από JavaScript όπως έτσι:
sessionStorage.setItem("key", "value");
Και για να ανακτήσετε την αποθηκευμένη τιμή:
sessionStorage.getItem("κλειδί");
Σημειώστε ότι και τα δύο κλειδί και αξία είναι μόνο τύποι συμβολοσειρών. Εάν θέλετε να αποθηκεύσετε έναν διαφορετικό τύπο, θα πρέπει να τον μετατρέψετε σε συμβολοσειρά, ρητά ή σιωπηρά.
Τι είναι η τοπική αποθήκευση;
Η τοπική αποθήκευση διατηρεί δεδομένα σε όλες τις παρουσίες ενός ιστότοπου, είτε βρίσκονται σε διαφορετικές καρτέλες είτε σε παράθυρα. Είναι επίσης μόνιμο, επομένως τα δεδομένα δεν θα εξαφανιστούν όταν κλείσετε το πρόγραμμα περιήγησής σας.
Όταν ανοίγετε έναν ιστότοπο που χρησιμοποιούσε προηγουμένως τοπικό χώρο αποθήκευσης, θα έχει πάντα πρόσβαση σε αυτά τα αποθηκευμένα δεδομένα.
Ως προγραμματιστής ιστού, μπορείτε να χρησιμοποιήσετε αυτόν τον μηχανισμό για να διατηρήσετε δεδομένα σχετικά με έναν χρήστη. Ορισμένοι ιστότοποι ενδέχεται να το χρησιμοποιήσουν για να σας κρατήσουν συνδεδεμένους ή να σας προσφέρουν μια πιο εξατομικευμένη εμπειρία.
Όπως και ο χώρος αποθήκευσης περιόδου λειτουργίας, μπορείτε να ορίσετε ένα αντικείμενο τοπικής αποθήκευσης με μία γραμμή κώδικα JavaScript:
localStorage.setItem("κλειδί", "τιμή");
Για πρόσβαση στην τιμή του κλειδιού:
localStorage.getItem("κλειδί");
Σημειώστε ότι αυτές οι μέθοδοι λειτουργούν με τον ίδιο τρόπο όπως η αποθήκευση περιόδου λειτουργίας, απλώς χρησιμοποιούν διαφορετικό τύπο αποθήκευσης δεδομένων.
Ενώ ο χώρος αποθήκευσης περιόδου λειτουργίας διαγράφει τα δεδομένα αμέσως μόλις τελειώσει η περίοδος λειτουργίας, ο μόνος τρόπος για να διαγράψετε τον τοπικό χώρο αποθήκευσης είναι η ρητή διαγραφή του. Και οι δύο τύποι αποθήκευσης προσφέρουν δύο μεθόδους διαγραφής δεδομένων. Το πρώτο αφαιρεί ένα συγκεκριμένο στοιχείο δεδομένων με βάση το κλειδί του:
localStorage.removeItem("κλειδί");
Μπορείτε επίσης να αφαιρέσετε όλα τα δεδομένα που είναι αποθηκευμένα από τον ιστότοπό σας, ανεξάρτητα από το κλειδί του:
localStorage.clear();
Μπορείτε να μάθετε περισσότερα σχετικά με αυτές τις μεθόδους API αποθήκευσης ιστού στο javascript.info δικτυακός τόπος.
Πότε χρειάζεστε τοπικό χώρο αποθήκευσης;
Δεδομένου ότι ο τοπικός χώρος αποθήκευσης είναι μόνιμος, είναι καλύτερο να διατηρήσετε δεδομένα σε όλες τις επισκέψεις των χρηστών. Εάν θέλετε να αποθηκεύσετε τις προτιμήσεις τοποθεσίας ή να αποθηκεύσετε προσωρινά μακροπρόθεσμα δεδομένα, η τοπική αποθήκευση είναι κατάλληλη. Μπορεί να μην θέλετε να αποθηκεύσετε πιο ευαίσθητα δεδομένα χρησιμοποιώντας τοπική αποθήκευση, καθώς είναι μόνιμο.
Καθώς η τοπική αποθήκευση και η αποθήκευση περιόδων σύνδεσης είναι μέθοδοι διεπαφής, μπορεί να θέλετε να αποφύγετε τη χρήση τους για λειτουργίες που βασίζονται σε διακομιστή, όπως η σύνδεση χρήστη. Θα μπορούσατε να εξετάσετε τα cookies ως εναλλακτική σε αυτές τις περιπτώσεις.
Πότε χρειάζεστε αποθήκευση συνεδρίας;
Εάν θέλετε να αποθηκεύετε δεδομένα μόνο ενώ ένας χρήστης αλληλεπιδρά με τον ιστότοπό σας, τότε η αποθήκευση περιόδων σύνδεσης είναι ιδανική. Αυτό θα μπορούσε να είναι για βραχυπρόθεσμη προσωρινή αποθήκευση ή δεδομένα χρήσης σχετικά με μια συγκεκριμένη επίσκεψη στον ιστότοπό σας.
Η αποθήκευση συνεδρίας είναι καλύτερη για την αποθήκευση πιο ευαίσθητων πληροφοριών, δεδομένου ότι λήγει.
Τοπικός αποθηκευτικός χώρος vs. Αποθήκευση συνεδρίας: Ποιο είναι πιο ασφαλές;
Όπως έχετε δει, οι τοπικές μέθοδοι αποθήκευσης και οι μέθοδοι αποθήκευσης περιόδου λειτουργίας είναι παρόμοιες από πολλές απόψεις, αλλά εξακολουθούν να έχουν προσαρμοσμένες περιπτώσεις χρήσης. Δεν θα πρέπει να θεωρείτε κανένα από τα δύο ασφαλή, καθώς πρόκειται για τεχνολογίες front-end στις οποίες έχει πρόσβαση η JavaScript. Ωστόσο, η αποθήκευση συνεδρίας είναι πολύ βολική και η προσωρινή φύση της είναι καθησυχαστική.
Ο τοπικός χώρος αποθήκευσης είναι μόνιμος, επομένως μπορεί να δημιουργήσει πρόσθετες ανησυχίες για την ασφάλεια. Όποιος ανοίγει ένα πρόγραμμα περιήγησης μπορεί, θεωρητικά, να έχει πρόσβαση στον τοπικό χώρο αποθήκευσης. Θα πρέπει να γνωρίζετε πώς λειτουργούν οι επιθέσεις XSS και πώς να τα προλάβετε.
Τοπικός αποθηκευτικός χώρος ή χώρος αποθήκευσης περιόδου λειτουργίας: Ποια πρέπει να χρησιμοποιήσετε;
Η αποθήκευση της περιόδου λειτουργίας είναι ελαφρώς πιο ασφαλής λόγω της προσωρινής φύσης της. Ωστόσο, η επιλογή της μεθόδου αποθήκευσης ιστού εξαρτάται από τις απαιτήσεις σας. Ο χώρος αποθήκευσης JavaScript είναι πιο κατάλληλος μόνο για χρήση από την πλευρά του πελάτη. Αλλά προσφέρει ένα βολικό χώρο αποθήκευσης δεδομένων που βασίζεται σε πρόγραμμα περιήγησης και είναι πολύ εύκολο στη χρήση.
Να θυμάστε ότι ενώ η τοπική αποθήκευση αποθηκεύει δεδομένα σε πολλές καρτέλες, η αποθήκευση περιόδου λειτουργίας είναι μοναδική για κάθε καρτέλα, ως επί το πλείστον. Θα πρέπει να βεβαιωθείτε ότι η εφαρμογή σας κάνει όσο το δυνατόν λιγότερες υποθέσεις και φροντίζει για ακραίες περιπτώσεις.
Τα cookies είναι μια παλαιότερη μορφή διατήρησης δεδομένων, αλλά εξακολουθούν να χρησιμοποιούνται πολύ. Ίσως θέλετε να τα ελέγξετε για δεδομένα που πρέπει να μεταδώσετε στον διακομιστή.