Webspeicher

Webspeicher, manchmal bekannt als als DOM -Speicher (Dokumentobjektmodell Speicher), bietet Web -Apps mit Methoden und Protokollen zum Speichern von Client-Seite-Daten. Webspeicher unterstützt hartnäckig Datenspeicher, ähnlich wie Kekse aber mit einer stark verbesserten Kapazität[1] und keine Informationen in die gesendet HTTP -Anfrage -Header.[2] Es gibt zwei wichtigste Webspeichertypen: lokaler Speicher- und Sitzungsspeicher, das sich ähnlich verhalten wie anhaltende Kekse und Session Cookies beziehungsweise. Webspeicher wird durch die standardisiert World Wide Web Konsortium (W3C)[3] und Waswg,[4] und wird von allen großen Browsern unterstützt.

Merkmale

Der Webspeicher unterscheidet sich auf wichtige Weise von Cookies.

Zweck

Cookies sind für die Kommunikation mit Servern vorgesehen. Sie werden automatisch zu allen Anfragen hinzugefügt und können sowohl vom Server als auch von der Client-Seite zugegriffen werden. Der Webspeicher fällt ausschließlich unter dem Zuständigkeitsbereich von Client-Seite Scripting. Webspeicherdaten werden in jeder HTTP -Anforderung nicht automatisch an den Server übertragen, und ein Webserver kann nicht direkt in den Webspeicher schreiben. Eine dieser Effekte kann jedoch mit expliziten clientseitigen Skripten erreicht werden, die die Feinabstimmung der gewünschten Interaktion des Servers ermöglichen.

Speichergröße

Kekse sind auf 4 Kilobyten beschränkt. Webspeicher bietet eine weitaus größere Speicherkapazität:

Lokal- und Sitzungsspeicher

Der Webspeicher bietet zwei verschiedene Speicherbereiche - einen lokalen Speicher- und Sitzungsspeicher -, die sich in Umfang und Lebensdauer unterscheiden. Daten, die im lokalen Speicher platziert sind, sind pro Origin gleichorientierte Politik. Die Daten stehen allen Skripten zur Verfügung, die von Seiten aus demselben Ursprung geladen wurden, die zuvor die Daten gespeichert und nach dem Browser bestehen bleiben. Daher leidet der Webspeicher nicht an einer schwachen Integrität von Cookie und schwachem Vertraulichkeitsproblem RFC 6265 Abschnitte 8.5 und 8.6. Die Sitzungspeicherung ist sowohl pro Origin als auch pro Instanz (per Wind oder pro Tabelle) und ist auf die Lebensdauer der Instanz beschränkt. Der Sitzungsspeicher soll zulassen, dass separate Instanzen derselben Web -App in verschiedenen Fenstern ausgeführt werden, ohne sich gegenseitig zu stören, ein Anwendungsfall, der von Cookies nicht gut unterstützt wird.[9]

Schnittstellen- und Datenmodell

Webspeicher bietet eine bessere programmatische Oberfläche als Cookies, da sie eine enthüllt Assoziatives Array Datenmodell wo die Schlüssel und Werte beide sind Saiten. Ein zusätzliches API zum Zugriff Strukturierte Daten wird von der Arbeitsgruppe W3C Web Applications berücksichtigt.[10]

Verwendungszweck

Browser, die den Webspeicher unterstützen, haben die globalen Objekte SessionStorage und lokaler Speicher auf der Fensterebene deklariert. Folgende JavaScript In diesen Browsern kann Code verwendet werden, um das Webspeicherverhalten aus dem Web -Speicher auszulösen:

// Wert auf Browser für die Dauer der Sitzung speichern SessionStorage.setItem('Schlüssel', 'Wert'); // Wert abrufen (wird gelöscht, wenn der Browser geschlossen und wiedereröffnet wird) ... Alarm(SessionStorage.GetItem('Schlüssel')); // Wert auf dem Browser über die Dauer der Sitzung hinaus speichern lokaler Speicher.setItem('Schlüssel', 'Wert'); // Wert abrufen (bleibt auch nach dem Schließen und Wiedereröffnung des Browsers bestehen) Alarm(lokaler Speicher.GetItem('Schlüssel')); 

Über die Speicher -API können nur Saiten gespeichert werden.[11] Der Versuch, einen anderen Datentyp zu speichern, führt zu einer automatischen Konvertierung in einen String in den meisten Browsern. Konvertierung in JSONErmöglicht jedoch eine effektive Speicherung von JavaScript -Objekten.

// Speichern Sie ein Objekt anstelle einer Zeichenfolge lokaler Speicher.setItem('Schlüssel', {Name: 'Wert'}); Alarm(Art der lokaler Speicher.GetItem('Schlüssel')); // String // Speichern Sie eine Ganzzahl anstelle einer Zeichenfolge lokaler Speicher.setItem('Schlüssel', 1); Alarm(Art der lokaler Speicher.GetItem('Schlüssel')); // String // Speichern Sie ein Objekt mit JSON lokaler Speicher.setItem('Schlüssel', JSON.Stringify({{Name: 'Wert'})); Alarm(JSON.analysieren(lokaler Speicher.GetItem('Schlüssel')).Name); // Wert 

Nomenklatur

Der W3C -Entwurf trägt den Titel "Web Storage". "DOM -Speicher" war auch ein häufig verwendeter Name, obwohl er weniger wird. Zum Beispiel wurden die Webartikel "DOM Storage" von Mozilla und Microsoft Developer -Websites durch "Webspeicher" -Prüfungen ersetzt.[12][13][14][15]

Der "Dom" im DOM -Speicher bezieht sich nicht buchstäblich auf die Dokumentobjektmodell. Laut W3C "wird der Begriff DOM verwendet, um auf den API -Set zu verweisen, der Skripten in Webanwendungen zur Verfügung gestellt wurde, und bedeutet nicht unbedingt die Existenz eines tatsächlichen Dokumentobjekts ..."[16]

Webspeicherverwaltung

Die Speicherung von Webspeicherobjekten ist standardmäßig in aktuellen Versionen aller unterstützenden Webbrowser aktiviert. Browseranbieter bieten Benutzern Möglichkeiten, den Webspeicher nativ zu aktivieren oder zu deaktivieren oder den Webspeicher "Cache" zu löschen.[17] Ähnliche Steuerelemente über dem Webspeicher sind auch über Drittanbieter erhältlich Browserverlängerungen. Jeder Browser speichert Webspeicherobjekte unterschiedlich:

  • Feuerfuchs Speichert Webspeicherobjekte in a Sqlite Datei aufgerufen webAppSstore.sqlite im Profilordner des Benutzers. [18]
  • Google Chrome Aufzeichnet Webspeicherdaten in a Sqlite Datei im Benutzerprofil. Der Unterordner, der diese Datei enthält, ist "\ Appdata \ Local \ Google \ Chrome \ Benutzerdaten \ Standard \ Local Lokal Speicher" an Fenster, und "~/Bibliothek/Anwendungsunterstützung/Google/Chrome/Standard-/Lokalspeicher" an Mac OS.
  • Oper's Web Storage befindet sich in beiden "\ Appdata \ Roaming \ Opera \ Opera \ Sessions \ autosave.win" oder "\ Appdata \ local \ Opera \ Opera \ pstorage \"Abhängig von der Operas Version.
  • Internet Explorer's Webspeicher ist "\ Appdata \ loclow \ microsoft \ Internet Explorer \ Domstorage".
  • SafariDas Webspeicher befindet sich in einem Ordner, der gekennzeichnet ist. "Lokaler Speicher"Innerhalb eines versteckten"Safari" Mappe. [19]

Siehe auch

Verweise

  1. ^ a b Dixit, Shwetank (2013-03-05). "Webspeicher: Einfacherer, leistungsfähigerer clientseitiger Datenspeicher". Dev.opera. Abgerufen 2021-05-14.
  2. ^ Hume, Andy (2011-03-24). "LocalStorage ist keine Kekse". Andyhume.net. Archiviert von das Original Am 2011-06-02. Abgerufen 2021-05-14.
  3. ^ Hickson, Ian, hrsg. (2021-01-28). "Web Storage (zweite Ausgabe)". W3c. Arbeitsgruppe Webplattform. Abgerufen 2021-05-14.
  4. ^ Waswg. "HTML Standard § 12 Webspeicher". html.spec.whatwg.org. Abgerufen 2021-05-14.
  5. ^ a b Kitamura, Eiji (2014-01-28). "Arbeiten mit Quoten an mobilen Browsern: Ein Forschungsbericht über Browserspeicher - HTML5 Rocks". Archiviert von das Original Am 2014-02-01. Abgerufen 2021-05-04.
  6. ^ John Ressig: DOM -Speicherplatz. John Ressig, ejohn.org. Abgerufen am 2011-06-12.
  7. ^ Michaeln (2013-03-08). "Ausgabe 21680002: Auf dem Fenster.LocalStorage -Grenze auf 10 m ab 5 m. - Code Review". Chromcode -Bewertungen. Abgerufen 2021-05-14.
  8. ^ Microsoft (2016-10-20). "Einführung in den Webspeicher". Microsoft Docs. Microsoft. Abgerufen 2021-05-14.
  9. ^ W3C: Web Storage Draft Standard.Dev.W3.org (2004-02-05).Abgerufen am 2011-06-12.
  10. ^ W3C: Indexierte Datenbank -API.W3c.Abgerufen am 02.02.2012.
  11. ^ W3C, 2011 http://dev.w3.org/html5/webstorage/
  12. ^ "DOM -Speicher". Mozilla Developer Network. Archiviert von das Original am 4. Juni 2011. Abgerufen 2011-06-12.
  13. ^ "Web Storage API". Mozilla Developer Network. Abgerufen 28. Juni, 2017.
  14. ^ "Einführung in den DOM -Speicher". Microsoft Developer Network. Archiviert von das Original am 8. Juni 2011. Abgerufen 2011-06-12.
  15. ^ "Einführung in den Webspeicher". Microsoft Developer Network. Abgerufen 28. Juni, 2017.
  16. ^ W3C: Web Storage Draft Standard.Dev.W3.org (2004-02-05).Abgerufen am 2011-06-12.
  17. ^ So aktivieren, deaktivieren oder löschen Sie den "Webspeicher" -Cache Ihres Browsers.Midas.Abgerufen am 2022-10-06.
  18. ^ WebAppSstore.sqlite kb.mozillazine.org
  19. ^ Wo werden Safari -Webdaten gespeichert? diskussions.apple.com.Abgerufen 20 2022-10-06

Externe Links