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();