Glossar App Entwicklung

Web Storage

Web Storage stellt eine Schlüssel-Wert-basierte Speichertechnologie für Webanwendungen dar, die als leistungsstärkere Alternative zu herkömmlichen Cookies entwickelt wurde. Im Gegensatz zu Cookies, die bei jeder HTTP-Anfrage an den Server gesendet werden, bleiben die im Web Storage gespeicherten Daten ausschließlich auf dem Client und werden nur dann an den Server übermittelt, wenn dies durch die Anwendung ausdrücklich gefordert wird. Dieser Ansatz verbessert die Performance und reduziert unnötigen Datenverkehr zwischen Client und Server.

Es gibt zwei Hauptvarianten des Web Storages: Local Storage und Session Storage. Beide Varianten bieten eine einfache Programmierschnittstelle und ermöglichen es Webentwicklern, Daten in Schlüssel-Wert-Paaren zu speichern. Diese Daten sind jedoch nur in Textform verfügbar; komplexe Datenstrukturen müssen daher zu einem String konvertiert werden, typischerweise mittels JSON (JavaScript Object Notation).

Local Storage bietet eine persistente Speichermöglichkeit. Das bedeutet, dass die gespeicherten Daten auch nach dem Schließen des Browsers erhalten bleiben. Dies ist besonders nützlich für Anwendungen, die Benutzereinstellungen oder den Stand einer Anwendung über Sessions hinweg speichern müssen, ohne auf serverseitige Speichermöglichkeiten zurückzugreifen. Jede Webseite hat dabei ihren eigenen isolierten Speicherbereich, was bedeutet, dass Webanwendungen von verschiedenen Domains nicht auf dieselben Daten zugreifen können. Die Speicherbeschränkung ist im Vergleich zu Cookies wesentlich höher, oft bis zu 5MB oder mehr pro Domain.

Session Storage ähnelt im Funktionsumfang stark dem Local Storage, mit dem wesentlichen Unterschied, dass die gespeicherten Daten nur für die Dauer einer "Session" erhalten bleiben. Eine Session in diesem Zusammenhang entspricht der Lebensdauer eines Tabs oder Fensters im Browser. Sobald dieser geschlossen wird, werden auch alle in Session Storage gespeicherten Daten gelöscht. Dies eignet sich für Daten, die nur temporär während der aktiven Sitzung benötigt werden und nicht dauerhaft gespeichert werden müssen.

Die Verwendung von Web Storage ist denkbar einfach. Die Web Storage API ist in das globale window-Objekt des Browsers eingebettet und kann über window.localStorage für Local Storage bzw. window.sessionStorage für Session Storage angesprochen werden. Mit Methoden wie setItem() und getItem() können Daten gespeichert bzw. ausgelesen werden, während removeItem() zum Löschen einzelner Schlüssel-Wert-Paare und clear() zum Leeren des gesamten Speichers dient.

Ein weiterer Vorteil des Web Storages gegenüber Cookies ist die Sicherheit. Da Web Storage nicht automatisch bei jeder HTTP-Anfrage mitgesendet wird, ist es weniger anfällig für CSRF-Attacken (Cross-Site Request Forgery). Außerdem wird durch die Same-Origin-Policy sichergestellt, dass nur Skripte, die von derselben Domain wie die gespeicherten Daten stammen, diese auch lesen und verändern können.

Zusammenfassend ist Web Storage ein mächtiges Werkzeug in der Toolbox eines Webentwicklers, das die Speicherung von Daten auf der Client-Seite ermöglicht und somit zur Performance und Benutzererfahrung von Webanwendungen beiträgt. Es ist wichtig zu beachten, dass trotz der vielen Vorteile von Web Storage, wie der erhöhten Speicherkapazität und der Trennung vom Server, diese Technologie nicht geeignet ist, um sensible Informationen zu speichern, da die Daten im Klartext vorliegen und von Skripten ausgelesen werden können, die auf derselben Domain laufen.