Jump to content

Веб-хранилище

(Перенаправлено с веб-хранилища )

Веб-хранилище , иногда называемое хранилищем DOM ( хранилище объектной модели документа ), представляет собой стандартный API JavaScript, предоставляемый веб-браузерами . Он позволяет веб-сайтам хранить постоянные данные на устройствах пользователей аналогично файлам cookie , но с гораздо большей емкостью. [1] и никакая информация не отправляется в заголовках HTTP . [2] Существует два основных типа веб-хранилищ: локальное хранилище и хранилище сеансов, которые ведут себя аналогично постоянным файлам cookie и сеансовым файлам cookie соответственно. Веб-хранилище стандартизировано Консорциумом World Wide Web (W3C). [3] и ЧТОРГ , [4] и поддерживается всеми основными браузерами.

Веб-хранилище отличается от файлов cookie в некоторых ключевых аспектах.

Файлы cookie предназначены для связи с серверами; они автоматически добавляются ко всем запросам и доступны как на стороне сервера, так и на стороне клиента. Веб-хранилище подпадает исключительно под действие сценариев на стороне клиента . Данные веб-хранилища не передаются автоматически на сервер при каждом HTTP-запросе, и веб-сервер не может напрямую записывать данные в веб-хранилище. Однако любого из этих эффектов можно достичь с помощью явных сценариев на стороне клиента, позволяющих точно настроить желаемое взаимодействие с сервером.

Размер хранилища

[ редактировать ]

Размер файлов cookie ограничен 4 килобайтами. Веб-хранилище обеспечивает гораздо большую емкость:

Локальное и сеансовое хранилище

[ редактировать ]

Веб-хранилище предлагает две разные области хранения — локальное хранилище и хранилище сеансов, которые различаются по объему и сроку службы. Данные, размещаемые в локальном хранилище, относятся к каждому источнику — комбинация протокола, имени хоста и номера порта, как определено в политике одного и того же источника . Данные доступны всем скриптам, загруженным со страниц того же источника, на котором ранее хранились данные, и сохраняются после закрытия браузера. Таким образом, веб-хранилище не страдает от проблем слабой целостности и слабой конфиденциальности файлов cookie, описанных в разделе RFC   6265, разделы 8.5 и 8.6. Хранилище сеансов предназначено как для каждого источника, так и для каждого экземпляра (для каждого окна или для каждой вкладки) и ограничено временем существования экземпляра. Хранилище сеансов предназначено для того, чтобы отдельные экземпляры одного и того же веб-приложения могли запускаться в разных окнах, не мешая друг другу, — вариант использования, который плохо поддерживается файлами cookie. [9]

Интерфейс и модель данных

[ редактировать ]

Веб-хранилище обеспечивает лучший программный интерфейс, чем файлы cookie, поскольку оно предоставляет ассоциативного массива модель данных , в которой ключи и значения являются строками .

Использование

[ редактировать ]

Браузеры, поддерживающие веб-хранилище, имеют глобальные объекты. sessionStorage и localStorage объявлено на уровне окна. следующий код JavaScript для запуска поведения веб-хранилища: В этих браузерах можно использовать

// Store value on browser for duration of the session
sessionStorage.setItem('key', 'value');

// Retrieve value (gets deleted when browser is closed and re-opened) ...
alert(sessionStorage.getItem('key'));

// Store value on the browser beyond the duration of the session
localStorage.setItem('key', 'value');

// Retrieve value (persists even after closing and re-opening the browser)
alert(localStorage.getItem('key'));

Через Storage API можно хранить только строки. [10] Попытка сохранить другой тип данных приведет к автоматическому преобразованию в строку в большинстве браузеров. Однако преобразование в JSON позволяет эффективно хранить объекты JavaScript.

// Store an object instead of a string
localStorage.setItem('key', {name: 'value'});
alert(typeof localStorage.getItem('key')); // string

// Store an integer instead of a string
localStorage.setItem('key', 1);
alert(typeof localStorage.getItem('key')); // string

// Store an object using JSON
localStorage.setItem('key', JSON.stringify({name: 'value'}));
alert(JSON.parse(localStorage.getItem('key')).name); // value

Номенклатура

[ редактировать ]

Проект W3C называется «Веб-хранилище». «Хранилище DOM» также было широко используемым названием, хотя его становится все меньше; например, веб-статьи «DOM Storage» на сайтах разработчиков Mozilla и Microsoft были заменены статьями «Web Storage». [11] [12] [13] [14]

«DOM» в хранилище DOM не относится буквально к объектной модели документа . Согласно W3C, «термин DOM используется для обозначения набора API, доступного сценариям в веб-приложениях, и не обязательно подразумевает существование реального объекта Document...» [15]

Управление веб-хранилищем

[ редактировать ]

Хранение объектов веб-хранилища включено по умолчанию в текущих версиях всех поддерживающих веб-браузеров, при этом поставщики браузеров предоставляют пользователям встроенные способы включения или отключения веб-хранилища или очистки «кеша» веб-хранилища. [16] Аналогичные элементы управления веб-хранилищем также доступны через расширения браузера сторонних производителей . Каждый браузер хранит объекты веб-хранилища по-разному:

  • Firefox сохраняет объекты веб-хранилища в файле SQLite с именем webappsstore.sqlite в папке профиля пользователя. [17]
  • Google Chrome записывает данные веб-хранилища в файл SQLite в профиле пользователя. Подпапка, содержащая этот файл: " \AppData\Local\Google\Chrome\User Data\Default\Local Storage" в Windows и " ~/Library/Application Support/Google/Chrome/Default/Local Storage" на MacOS .
  • Веб-хранилище Opera находится либо в « \AppData\Roaming\Opera\Opera\sessions\autosave.win" или " \AppData\Local\Opera\Opera\pstorage\" в зависимости от версии Opera.
  • Веб-хранилище Internet Explorer : " \AppData\LocalLow\Microsoft\Internet Explorer\DOMStorage".
  • Веб-хранилище Safari находится в папке с надписью « LocalStorage"в скрытом" safari" папка. [18]

Подобные технологии

[ редактировать ]

Хотя localStorage часто используется для хранения постоянных пар ключ-значение, появились и другие API, позволяющие реализовать различные варианты использования, например итерируемую индексацию. [19] и с различными шаблонами производительности:

  1. ^ Перейти обратно: а б Диксит, Шветанк (5 марта 2013 г.). «Веб-хранилище: более простое и мощное хранилище данных на стороне клиента» . Дев.Опера . Проверено 14 мая 2021 г.
  2. ^ Хьюм, Энди (24 марта 2011 г.). «localStorage — это не файлы cookie» . andyhume.net . Архивировано из оригинала 2 июня 2011 г. Проверено 14 мая 2021 г.
  3. ^ Хиксон, Ян, изд. (28 января 2021 г.). «Веб-хранилище (второе издание)» . W3C . Рабочая группа веб-платформы . Проверено 14 мая 2021 г.
  4. ^ ЧТОРГ. «Стандарт HTML § 12 Веб-хранилище» . html.spec.whatwg.org . Проверено 14 мая 2021 г.
  5. ^ Перейти обратно: а б Китамура, Эйдзи (28 января 2014 г.). «Работа с квотами в мобильных браузерах: отчет об исследовании хранилища браузера — HTML5 Rocks» . Архивировано из оригинала 1 февраля 2014 г. Проверено 4 мая 2021 г.
  6. ^ Джон Ресиг: Хранилище DOM . Джон Резиг, ejohn.org . Проверено 12 июня 2011 г.
  7. ^ Майклн (08 марта 2013 г.). «Проблема 21680002: увеличение лимита window.localstorage до 10 МБ с 5 МБ. — Проверка кода» . Обзоры кода Chromium . Проверено 14 мая 2021 г.
  8. ^ Майкрософт (20 октября 2016 г.). «Введение в веб-хранилище» . Документы Майкрософт . Майкрософт . Проверено 14 мая 2021 г.
  9. ^ W3C: Проект стандарта веб-хранилища . Dev.w3.org (5 февраля 2004 г.). Проверено 12 июня 2011 г.
  10. ^ W3C, 2011 г. http://dev.w3.org/html5/webstorage/
  11. ^ «Хранилище DOM» . Сеть разработчиков Mozilla . Архивировано из оригинала 4 июня 2011 года . Проверено 12 июня 2011 г.
  12. ^ «API веб-хранилища» . Сеть разработчиков Mozilla . Проверено 28 июня 2017 г.
  13. ^ «Введение в хранилище DOM» . Сеть разработчиков Microsoft . Архивировано из оригинала 8 июня 2011 года . Проверено 12 июня 2011 г.
  14. ^ «Введение в веб-хранилище» . Сеть разработчиков Microsoft . Проверено 28 июня 2017 г.
  15. ^ W3C: Проект стандарта веб-хранилища . Dev.w3.org (5 февраля 2004 г.). Проверено 12 июня 2011 г.
  16. ^ Как включить, отключить или очистить кэш «Веб-хранилища» вашего браузера . середина.ас. Проверено 6 октября 2022 г.
  17. ^ Webappsstore.sqlite kb.mozillazine.org
  18. ^ Где хранятся веб-данные Safari? обсуждения.apple.com. Получено 20 6 октября 2022 г.
  19. ^ «localStorage в современных приложениях» . RxDB . Проверено 14 августа 2023 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d4f59d289b9daf45dd468af30b5f0587__1720086240
URL1:https://arc.ask3.ru/arc/aa/d4/87/d4f59d289b9daf45dd468af30b5f0587.html
Заголовок, (Title) документа по адресу, URL1:
Web storage - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)