- DOM Storage
-
DOM Storage (auch Web Storage oder Supercookies genannt) ist eine Technik für Webanwendungen, mit der Daten in einem Webbrowser gespeichert werden. DOM Storage unterstützt persistente Datenspeicherung, ähnlich Cookies, ebenso wie die lokale, Session-spezifische Speicherung.
DOM Storage wird durch das World Wide Web Consortium (W3C) standardisiert. Ursprünglich war es Teil der HTML-5-Spezifikation, wurde mittlerweile aber in eine eigene Spezifikation ausgegliedert.[1] Derzeit wird DOM Storage vom Internet Explorer 8, Mozilla-basierten Browsern (z. B. Firefox 2+, offiziell seit 3.5[2]), Safari 4, Google Chrome 4 und Opera 10.50 unterstützt.
Inhaltsverzeichnis
Merkmale
DOM Storage kann vereinfacht als eine Weiterentwicklung von Cookies („Super-Cookies“) angesehen werden. Die Technik bietet weitaus größere Speicherkapazität (5 MB pro Domain in Firefox[3], 10 MB pro Storage Area im Internet Explorer[4]) und bessere Entwicklungs-Schnittstellen. In einigen Punkten unterscheidet sie sich jedoch von Cookies.
Client-seitige Schnittstelle
Im Gegensatz zu Cookies, auf die sowohl Server als auch Client zugreifen können, wird DOM Storage vollständig vom Client gesteuert. Es werden hierbei nicht mit jedem HTTP-Request Daten zum Server übertragen und ein Webserver kann auch nicht direkt Daten im DOM Storage schreiben. Der Zugriff erfolgt ausschließlich über Skripte auf der Webseite.
Speicherung
DOM Storage bietet zwei verschiedene Arten der Speicherung an: lokale (localStorage) und Session-spezifische (sessionStorage). Sie unterscheiden sich in Gültigkeitsbereich und -dauer.
Lokale Speicherung
Daten, die lokal gespeichert werden, sind mit einer Domain verknüpft und bleiben auch nach Beenden des Browsers bestehen. Alle Skripte einer Domain, von der aus die Daten gespeichert wurden, können auf die Daten zugreifen.
Bei Mozilla Firefox werden die Daten in der Datenbankdatei webappsstore.sqlite gespeichert. Mit dem Kommando sqlite3 können sie betrachtet werden. Es existieren Browser-Addons, die zu dem Zweck entstanden sind, diese Daten vom System wieder löschen zu lassen, auch automatisiert, z. B. mit „Better Privacy“. Über die Eingabe von „about:config“ in der Adresszeile kann der Wert von „dom.storage.enabled“ von „true“ zu „false“ geändert, und DOM-Storage-Objekte somit abgeschaltet werden.
Session-spezifische Speicherung
Session-spezifisch gespeicherte Daten sind mit dem Browser-Fenster verknüpft und auf dieses beschränkt. Gespeicherte Daten werden beim Schließen des Browser-Fensters gelöscht. Diese Technik bietet die Möglichkeit, mehrere Instanzen derselben Anwendung in verschiedenen Fenstern laufen zu lassen, ohne dass es zu einer gegenseitigen Beeinflussung kommt, was von Cookies bisher nicht zuverlässig unterstützt wird.[5]
Datenmodell
DOM Storage speichert Daten in einem assoziativen Array, in dem die Schlüssel und Werte Strings sind. Über eine zusätzliche Programmierschnittstelle zum Zugriff auf strukturierte Daten, möglicherweise auf SQL-Basis, wird derzeit innerhalb der Web Applications Working Group des W3C diskutiert.[6]
Namensgebung
Der Entwurf des W3C spricht von „Web Storage“, obwohl „DOM Storage“ inzwischen der gebräuchlichere Name ist.[7][8]
Die Abkürzung „DOM“ in „DOM Storage“ steht nicht in direkter Verbindung zum Document Object Model: „Die Bezeichnung DOM bezieht sich auf die Anwendungsschnittstellen, die Skripten in Webanwendungen zur Verfügung stehen, und impliziert nicht notwendigerweise die Existenz eines tatsächlichen Dokumenten-Objekts [...]“[9]
Ähnliche Technologien
- HTTP-Cookies
- Local Shared Objects in Adobe Flash
- Google Gears for IE, Firefox, Safari and Windows Mobile
Weblinks
- W3C: Web Storage
- DOMCached - a memcached like caching system for JavaScript using DOM storage
- Jo Bager, Herbert Braun: Tratschtanten - Was Browser an Daten sammeln und preisgeben. In: c't 21/2009, Seite 108
Einzelnachweise
Wikimedia Foundation.