Browser Storage: LocalStorage, SessionStorage & Cookies | Enjyn Gruppe
Hallo Welt
Hallo Welt
Original Lingva Deutsch
Übersetzung wird vorbereitet...
Dieser Vorgang kann bis zu 60 Sekunden dauern.
Diese Seite wird erstmalig übersetzt und dann für alle Besucher gespeichert.
0%
DE Zurück zu Deutsch
Übersetzung durch Lingva Translate

235 Dokumentationen verfügbar

Wissensdatenbank

LocalStorage SessionStorage Cookies

Zuletzt aktualisiert: 20.01.2026 um 10:04 Uhr

Browser Storage: LocalStorage, SessionStorage & Cookies

Der Browser bietet verschiedene Methoden zur Datenspeicherung. Dieser Guide erklärt die Unterschiede und wann Sie welche Methode nutzen sollten.

Übersicht der Speichermethoden

Eigenschaft LocalStorage SessionStorage Cookies
Kapazität ~5-10 MB ~5-10 MB ~4 KB
Lebensdauer Permanent Bis Tab geschlossen Konfigurierbar
Wird an Server gesendet Nein Nein Ja, bei jedem Request
Zugriff Nur Client Nur Client Client & Server
Tab-übergreifend Ja Nein Ja

LocalStorage

Speichert Daten permanent im Browser bis sie explizit gelöscht werden.

Grundlegende Operationen

// Speichern
localStorage.setItem('username', 'Max');

// Lesen
const username = localStorage.getItem('username');

// Löschen
localStorage.removeItem('username');

// Alles löschen
localStorage.clear();

// Alle Keys durchgehen
for (let i = 0; i < localStorage.length; i++) {
  const key = localStorage.key(i);
  console.log(key, localStorage.getItem(key));
}

Objekte speichern (JSON)

// Speichern
const user = { name: 'Max', age: 30 };
localStorage.setItem('user', JSON.stringify(user));

// Lesen
const storedUser = JSON.parse(localStorage.getItem('user'));
console.log(storedUser.name); // Max

Mit Ablaufdatum

// Speichern mit TTL
function setWithExpiry(key, value, ttl) {
  const item = {
    value: value,
    expiry: Date.now() + ttl
  };
  localStorage.setItem(key, JSON.stringify(item));
}

// Lesen mit Ablauf-Check
function getWithExpiry(key) {
  const itemStr = localStorage.getItem(key);
  if (!itemStr) return null;

  const item = JSON.parse(itemStr);
  if (Date.now() > item.expiry) {
    localStorage.removeItem(key);
    return null;
  }
  return item.value;
}

// Verwendung: 1 Stunde TTL
setWithExpiry('token', 'abc123', 60 * 60 * 1000);

SessionStorage

Wie LocalStorage, aber Daten werden beim Schließen des Tabs gelöscht.

// Gleiche API wie LocalStorage
sessionStorage.setItem('tempData', 'value');
const data = sessionStorage.getItem('tempData');
sessionStorage.removeItem('tempData');
sessionStorage.clear();

Anwendungsfälle

  • Formular-Zwischenstände
  • Temporäre UI-Zustände
  • Wizard/Multi-Step-Prozesse
  • Tab-spezifische Daten

Cookies

Cookie setzen

// Einfaches Cookie
document.cookie = "username=Max";

// Mit Ablaufdatum
document.cookie = "username=Max; expires=Fri, 31 Dec 2025 23:59:59 GMT";

// Mit Max-Age (Sekunden)
document.cookie = "username=Max; max-age=3600"; // 1 Stunde

// Mit Path und Domain
document.cookie = "username=Max; path=/; domain=example.com";

// Secure (nur HTTPS) und HttpOnly (kein JS-Zugriff)
document.cookie = "token=abc; secure; samesite=strict";

Cookie lesen

// Alle Cookies als String
console.log(document.cookie);
// "username=Max; theme=dark"

// Bestimmtes Cookie extrahieren
function getCookie(name) {
  const value = `; ${document.cookie}`;
  const parts = value.split(`; ${name}=`);
  if (parts.length === 2) return parts.pop().split(';').shift();
  return null;
}

const username = getCookie('username');

Cookie löschen

// Ablaufdatum in Vergangenheit setzen
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";

Cookie-Attribute

Attribut Beschreibung
expires Ablaufdatum (GMT)
max-age Lebensdauer in Sekunden
path URL-Pfad für Cookie
domain Domain für Cookie
secure Nur über HTTPS senden
httponly Kein JavaScript-Zugriff
samesite CSRF-Schutz (strict, lax, none)

Wann was verwenden?

💡 Empfehlungen:
  • LocalStorage: Benutzereinstellungen, Theme, Sprache
  • SessionStorage: Temporäre Daten, Formular-Backups
  • Cookies: Auth-Tokens, Server-Kommunikation

Sicherheitshinweise

⚠️ Sicherheit:
  • KEINE sensiblen Daten in LocalStorage/SessionStorage
  • Auth-Tokens in HttpOnly Cookies speichern
  • SameSite-Attribut gegen CSRF nutzen
  • Secure-Flag für HTTPS setzen
  • XSS kann auf Storage zugreifen!

Storage Events (für Multi-Tab)

// Reagieren auf Änderungen in anderen Tabs
window.addEventListener('storage', event => {
  console.log('Key geändert:', event.key);
  console.log('Alter Wert:', event.oldValue);
  console.log('Neuer Wert:', event.newValue);
  console.log('URL:', event.url);

  // z.B. Logout in allen Tabs
  if (event.key === 'logout') {
    window.location.href = '/login';
  }
});

IndexedDB für große Datenmengen

Für komplexe Daten oder große Mengen:

// IndexedDB öffnen
const request = indexedDB.open('MyDatabase', 1);

request.onupgradeneeded = event => {
  const db = event.target.result;
  const store = db.createObjectStore('users', { keyPath: 'id' });
  store.createIndex('email', 'email', { unique: true });
};

request.onsuccess = event => {
  const db = event.target.result;

  // Daten speichern
  const tx = db.transaction('users', 'readwrite');
  tx.objectStore('users').add({ id: 1, name: 'Max', email: 'max@test.de' });

  // Daten lesen
  const getTx = db.transaction('users', 'readonly');
  getTx.objectStore('users').get(1).onsuccess = e => {
    console.log(e.target.result);
  };
};

Weitere Informationen

Enjix Beta

Enjyn AI Agent

Hallo 👋 Ich bin Enjix — wie kann ich dir helfen?
120