Cookies, Local Storage und IndexedDB: Was eine Sitzung wirklich ist

Die Anmeldung schreibt an drei getrennte Orte. Wer weiß, was was ist, versteht, warum Sitzungen manches überstehen, bei anderem brechen und warum die Synchronisierung eines Profils alle drei bewegen muss.
"Angemeldet sein" fühlt sich wie eine einzige Sache an. Es sind mindestens drei, an drei verschiedenen Orten mit drei verschiedenen Lebensdauern gespeichert, und der Unterschied erklärt das meiste verwirrende Verhalten, auf das man beim Verschieben von Sitzungen zwischen Rechnern stößt.
Cookies
Kleine Schlüssel-Wert-Paare, die automatisch mit jeder Anfrage an die Website gesendet werden, die sie gesetzt hat. Hier liegt meist das Sitzungstoken.
- Auf eine Domain und einen Pfad begrenzt, mit einem Ablaufdatum.
- Ein `Secure`-Cookie wird nur über HTTPS gesendet; ein `HttpOnly`-Cookie ist für JavaScript der Seite unsichtbar.
- Ein Sitzungs-Cookie hat kein Ablaufdatum und soll verschwinden, wenn der Browser schließt.
Cookies sind die kleinste der drei Speicherarten und die tragendste. Wer sie verliert, ist abgemeldet.
Local Storage und Session Storage
Speicher für Zeichenketten als Schlüssel-Wert-Paare, von JavaScript der Seite gelesen und geschrieben und pro Origin begrenzt. Er wird nie mit einer Anfrage gesendet. Die Seite muss ihn gezielt lesen.
Anwendungen legen hier Einstellungen, zwischengespeicherte Profildetails, Feature-Flags und oft ein Refresh-Token ab. Local Storage bleibt bestehen, bis er geleert wird; Session Storage hält nur so lange wie der Tab.
IndexedDB
Eine echte Datenbank im Browser: strukturierte Datensätze, Indizes, Transaktionen. Hier legt eine moderne Webanwendung alles Umfangreiche ab: zwischengespeicherte Nachrichtenverläufe, Offline-Warteschlangen, Schlüssel für Ende-zu-Ende-verschlüsselte Funktionen.
Warum das für ein Profil wichtig ist
Es gibt „Isolation“ eine präzise Bedeutung. Zwei Profile sind isoliert, wenn alle drei davon getrennt sind, dazu der Cache und der Zustand der Erweiterungen. Ein Tool, das Cookies isoliert und IndexedDB teilt, hat das einfache Drittel des Problems isoliert.
Es legt auch die Messlatte für das Verschieben eines Profils zwischen Rechnern fest. Wer nur Cookies mitnimmt, bildet die Form einer Sitzung nach, aber nicht ihre Substanz.
| Speicher | Geschrieben von | Enthält typischerweise |
|---|---|---|
| Cookies | Server und Seitenskript | Sitzungstoken, Einstellungen, Tracking-Kennungen |
| Local Storage | Seitenskript | Refresh-Tokens, UI-Zustand, zwischengespeicherte Profildetails |
| Session Storage | Seitenskript | Zustand pro Tab, verworfen beim Schließen des Tabs |
| IndexedDB | Seitenskript | Zwischengespeicherte Daten, Offline-Warteschlangen, Verschlüsselungsschlüssel |
Eine Sitzung zwischen eigenen Rechnern verschieben
PowerOps erfasst Cookies, Local Storage und IndexedDB beim Schließen eines Profils und stellt sie wieder her, wenn es woanders geöffnet wird. Jede Kategorie ist ein Schalter, für den ganzen Workspace oder für ein einzelnes Profil, sodass Sie genau so viel verschieben können, wie Sie wollen.
Zwei Eigenschaften der Funktionsweise sind wissenswert:
- Der Snapshot wird auf dem Rechner, von dem er stammt, mit einem Schlüssel des Workspaces verschlüsselt und auf dem Rechner, der das Profil öffnet, entschlüsselt. Das ist keine Ende-zu-Ende-Verschlüsselung: Der Dienst behält eine Kopie dieses Schlüssels, damit Ihre anderen Computer ihn erhalten können.
- Ein Profil ist jeweils auf einem Rechner geöffnet. Solange es offen ist, hält es eine Sperre (Lease), und ein anderes Gerät erfährt, welches Gerät es hat, statt die Sitzung in zwei auseinanderlaufende Kopien aufspalten zu dürfen.
Dieser zweite Punkt ist eine bewusste Einschränkung. Zwei Rechner, die eine Sitzung unabhängig bearbeiten, erzeugen zwei halb gültige Sitzungen und recht oft einen abgemeldeten Account auf beiden. Ein Cookie-Glas kann keinen Merge-Konflikt auflösen.
Die praktische Erkenntnis
Schließen Sie Profile, statt sie abzuwürgen. Das Herausschreiben beim Schließen macht die Sitzung portabel, und es ist die günstigste Gewohnheit auf dieser Liste.

