Sobes.tech
Junior

Εξηγήστε τη διαφορά μεταξύ cookies, sessionStorage και localStorage.

sobes.tech AI

Απάντηση από AI

Μηχανισμός Μέγεθος (περίπου) Διάρκεια ζωής Πρόσβαση Μεταδίδεται στον διακομιστή Χρήση
Cookies 4 KB Ημερομηνία λήξης που ορίζεται από τον διακομιστή ή τον browser Τρέχων έγγραφο και υποτομείς (ανάλογα με τις ρυθμίσεις) Σε κάθε αίτημα HTTP Ταυτοποίηση, παρακολούθηση, προσαρμοσμένες ρυθμίσεις χρήστη
localStorage 5-10 MB Αόριστο (όσο ο χρήστης δεν διαγράψει) Μόνο η τρέχουσα προέλευση (πρωτόκολλο, τομέας, θύρα) Όχι Αποθήκευση προτιμήσεων χρήστη, δεδομένων κατάστασης εφαρμογής
sessionStorage 5-10 MB Μέχρι το κλείσιμο της καρτέλας/παραθύρου Μόνο η τρέχουσα προέλευση (πρωτόκολλο, τομέας, θύρα) Όχι Προσωρινή αποθήκευση δεδομένων της συνεδρίας χρήστη

Cookies:

  • Αποστέλλονται με κάθε αίτημα HTTP στον διακομιστή, κάτι που μπορεί να αυξήσει την κίνηση.
  • Κύριος σκοπός: ταυτοποίηση χρήστη (σχετικά με συνεδρίες), απομνημόνευση προτιμήσεων, παρακολούθηση ενεργειών χρήστη.
  • Διαθέσιμα τόσο στην πλευρά του πελάτη (JavaScript) όσο και στην πλευρά του διακομιστή.
  • Μπορούν να περιοριστούν από το domain και το μονοπάτι.
  • Θεωρούνται λιγότερο ασφαλή για την αποθήκευση ευαίσθητων δεδομένων λόγω της αυτόματης αποστολής στον διακομιστή.

localStorage:

  • Τα δεδομένα αποθηκεύονται τοπικά στον browser του χρήστη.
  • Χρησιμοποιείται για μόνιμη αποθήκευση δεδομένων που δεν χρειάζεται να αποστέλλονται στον διακομιστή σε κάθε αίτημα.
  • Διαθέτει απλό API JavaScript.
  • Τα δεδομένα αποθηκεύονται σε ζεύγη κλειδιού-τιμής.
  • Δεν είναι προσβάσιμα από άλλες προελεύσεις.
// Ορισμός τιμής
localStorage.setItem('username', 'john.doe');

// Ανάκτηση τιμής
let username = localStorage.getItem('username');

// Διαγραφή τιμής
localStorage.removeItem('username');

// Εκκαθάριση όλου του localStorage
localStorage.clear();

sessionStorage:

  • Παρόμοιο με το localStorage, αλλά τα δεδομένα αποθηκεύονται μόνο μέχρι το κλείσιμο της τρέχουσας καρτέλας ή παραθύρου.
  • Ιδανικό για προσωρινή αποθήκευση δεδομένων που σχετίζονται με την τρέχουσα συνεδρία του χρήστη (π.χ. δεδομένα φόρμας, καλάθι αγορών).
  • Διαθέτει επίσης απλό API JavaScript, παρόμοιο με το localStorage.
  • Τα δεδομένα είναι διαθέσιμα μόνο στην τρέχουσα προέλευση.
// Ορισμός τιμής
sessionStorage.setItem('sessionId', 'abc123');

// Ανάκτηση τιμής
let sessionId = sessionStorage.getItem('sessionId');

// Διαγραφή τιμής
sessionStorage.removeItem('sessionId');

// Εκκαθάριση όλου του sessionStorage
sessionStorage.clear();