Web-Speicher: localStorage, sessionStorage und IndexedDB
Kurz: Browser können Daten lokal beim Nutzer speichern: einfache Schlüssel-Wert-Paare (localStorage, sessionStorage) oder eine richtige Datenbank (IndexedDB).
Genauer: Neben Cookies bieten Browser mehrere Möglichkeiten, Daten auf dem Gerät abzulegen, zum Beispiel Einstellungen, Entwürfe oder Offline-Daten. Sie sind an die Herkunft (Schema, Domain, Port) gebunden: Eine andere Seite kann sie nicht lesen.
Im Detail
localStorage und sessionStorage
Einfache Schlüssel-Wert-Speicher für Text, etwa 5 MB pro Herkunft:
localStorage.setItem('theme', 'dunkel');
const t = localStorage.getItem('theme');
localStorage.removeItem('theme');- localStorage: bleibt dauerhaft, auch nach Schließen des Browsers.
- sessionStorage: nur für den Tab, endet mit ihm.
Zugriffe sind synchron und blockieren den Hauptthread, daher nicht für große Daten. Objekte müssen als
JSON.stringifyabgelegt werden. Beides kann fehlschlagen, wenn der Nutzer Speicher sperrt oder im privaten Fenster surft: Zugriffe intry/catchkapseln.
IndexedDB
Eine richtige Datenbank im Browser für strukturierte, auch große Daten (Hunderte MB und mehr), mit Indizes, Transaktionen und Binärdaten wie Dateien und Bildern. Die Programmierschnittstelle ist asynchron und ereignisbasiert, deshalb nutzt man meist eine Hilfsbibliothek (idb, Dexie). IndexedDB ist die Grundlage für Offline-Apps (PWA) zusammen mit dem Service Worker.
Cookies im Vergleich
Cookies werden bei jeder Anfrage an den Server mitgeschickt (bis etwa 4 KB), Web-Speicher bleibt dagegen lokal. Für Anmeldungen eignen sich Cookies mit HttpOnly und Secure besser, weil JavaScript sie nicht lesen kann: Ein Anmelde-Token in localStorage kann bei einer XSS-Lücke gestohlen werden.
Datenschutz und Praxis
Auch lokale Speicherung kann eine Einwilligungspflicht auslösen, wenn sie nicht unbedingt erforderlich ist (TDDDG). Speichere keine Geheimnisse oder sensible Daten im Klartext. Der Browser kann Speicher bei Platzmangel löschen; navigator.storage.persist() bittet um dauerhafte Speicherung. Für Synchronisierung über Geräte braucht man einen Server.
Siehe auch: Cookies, XSS, Service Worker, Offline-First und Background Sync