Сеанс и локальное хранилище — это методы хранения браузера, которые позволяют хранить данные вместе с HTTP-запросами без сохранения состояния. Они являются альтернативой хранилищу на основе файлов cookie и широко используются в веб-разработке.

Хотя они работают очень похожим образом, есть существенные различия, о которых вы должны знать.

Локальное хранилище и хранилище сеансов: каково их использование?

Локальное хранилище и хранилище сеансов — это API-интерфейсы JavaScript, которые можно использовать для хранения данных на стороне клиента. Они позволяют веб-сайту хранить данные в браузере и дают указание браузеру получить к ним доступ позже.

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

instagram viewer

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

Кроме того, локальное хранилище и хранилище сеансов имеют лимит хранения около 5 МБ на домен. Они обеспечивают больше места для хранения, чем файлы cookie, емкость которых составляет всего 4 КиБ на файл cookie.

Что такое хранилище сеансов?

Сеанс просмотра приблизительно соответствует использованию вами веб-сайта. Если вы посещаете сайт, немного просматриваете его, а затем выключите компьютер, вы можете думать об этом времени как об одном сеансе. Конфигурация вашего браузера может незначительно изменить это, но цель сеанса — представить отрезок времени, в течение которого вы взаимодействуете с сайтом.

Хранилище сеансов уникально для каждой вкладки браузера. Если вы откроете новую вкладку и перейдете на тот же сайт, вы начнете новый сеанс с собственным хранилищем. Однако, если вы используете функцию «дублировать вкладку» в своем браузере, это может привести к повторному использованию одного и того же сеанса. Вы не можете слишком полагаться на конкретные детали «сеанса». Вместо этого сосредоточьтесь на основной концепции: хранилище сеансов является временным.

Хранилище сеансов имеет встроенные методы API для работы с парами ключ/значение. Вы можете хранить данные из JavaScript вот так:

sessionStorage.setItem("ключ", "значение");

И чтобы получить сохраненное значение:

sessionStorage.getItem("ключ");

Обратите внимание, что оба ключ а также ценность являются только строковыми типами. Если вы хотите сохранить другой тип, вам нужно будет преобразовать его в строку, явно или неявно.

Что такое локальное хранилище?

Локальное хранилище поддерживает данные для всех экземпляров сайта, независимо от того, находятся ли они на разных вкладках или в разных окнах. Это также является постоянным, поэтому данные не исчезнут, когда вы закроете браузер.

Когда вы открываете веб-сайт, который ранее использовал локальное хранилище, он всегда будет иметь доступ к этим сохраненным данным.

Как веб-разработчик, вы можете использовать этот механизм для сохранения данных о пользователе. Некоторые веб-сайты могут использовать это, чтобы вы оставались в системе или предоставляли более персонализированный опыт.

Как и хранилище сеансов, вы можете установить объект локального хранилища с помощью одной строки кода JavaScript:

localStorage.setItem("ключ", "значение");

Чтобы получить доступ к значению ключа:

localStorage.getItem("ключ");

Обратите внимание, что эти методы работают так же, как хранилище сеансов, просто они используют другой тип хранилища данных.

Хотя хранилище сеанса очищает данные, как только сеанс завершается, единственный способ очистить локальное хранилище — это явно удалить его. Оба типа хранилища предлагают два метода очистки данных. Первый удаляет определенный элемент данных на основе его ключа:

localStorage.removeItem("ключ");

Вы также можете удалить все данные, хранящиеся на вашем сайте, независимо от его ключа:

локальное хранилище.очистить();

Вы можете узнать больше об этих методах API веб-хранилища на javascript.info Веб-сайт.

Когда вам нужно локальное хранилище?

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

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

Когда вам нужно хранилище сеансов?

Если вы хотите хранить данные только в то время, когда пользователь взаимодействует с вашим сайтом, хранилище сеансов идеально подходит. Это может быть для краткосрочного кэширования или использования данных о конкретном посещении вашего сайта.

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

Локальное хранилище по сравнению с Хранилище сеансов: что более безопасно?

Как вы видели, методы локального и сеансового хранения во многом схожи, но все же имеют индивидуальные сценарии использования. Вы не должны считать их безопасными, поскольку они являются внешними технологиями, к которым у JavaScript есть доступ. Однако хранение сеансов очень удобно, и его временный характер обнадеживает.

Локальное хранилище является постоянным, поэтому оно может создавать дополнительные проблемы с безопасностью. Любой, кто открывает браузер, теоретически может получить доступ к локальному хранилищу. Вы должны знать о как работают XSS-атаки и как их предотвратить.

Локальное хранилище или хранилище сеансов: что использовать?

Хранилище сеансов немного более безопасно из-за его временного характера. Однако выбор метода веб-хранилища зависит от ваших требований. Хранилище JavaScript больше всего подходит для использования только на стороне клиента. Но он предлагает удобное хранилище данных на основе браузера и очень прост в использовании.

Помните, что в то время как локальное хранилище хранит данные на нескольких вкладках, хранилище сеансов по большей части уникально для каждой вкладки. Вы должны убедиться, что ваше приложение делает как можно меньше предположений и учитывает крайние случаи.

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