локальное хранилище и хранилище сессий
Что у них общего:
1. Размер хранилища составляет около 5 МБ.
2. Существуют ограничения политики одного и того же происхождения
3. Сохраняется только в клиенте и не участвует в общении с сервером
Разница между ними в том, что:
1,生命周期
- как долго данные могут храниться
- localStorage: сохраненные данные являются постоянными и будут сохраняться, если пользователь не удалит их вручную.
- sessionStorage: срок действия вкладки, на которой находится скрипт, хранящий данные, такой же. После закрытия окна или вкладки все данные, хранящиеся в sessionStorage, также будут удалены.
2,作用域
- Кто имеет доступ к данным
- localStorage: в том же браузере,
同源文档
Делясь данными LocalStorage, вы можете читать друг друга, переопределять. - sessionStorage: то же, что и localStorage, требует того же браузера и того же исходного документа. Мало того, область действия sessionStorage также ограничена окном, то есть только один и тот же браузер и один и тот же исходный документ одного и того же окна могут обмениваться данными.
для лучшего пониманияsessionStorage
, давайте посмотрим на примере:
Например, вы открываете в браузере две страницы А и Б с одним и тем же адресом.Хотя источник этих двух страниц один и тот же, они все равно не могут обмениваться данными, поскольку находятся в разных окнах. Но если это окно, то есть два гомологичныхiframe
элементы, эти дваiframe
SessionStorage совместим.
API
//sessionStorage用法相同
localStorage.setItem("name",1); // 以"x"为名字存储一个数值
localStorage.getItem("name"); // 获取数值
localStorage.key(i); // 获取第i对的名字
localStorage.removeItem("name"); // 获取该对的值
localStorage.clear(); // 全部删除
Cookie
основная концепция
Куки-файлы — это небольшие куки-файлы, в основном имеющие следующие характеристики:
1. Как следует из названия, файлы cookie действительно очень маленькие, и их размер ограничен примерно 4 КБ.
2. Основная цель — сохранить информацию для входа и пометить пользователей (например, корзины покупок) и т. д. Однако с появлением localStorage рабочие файлы cookie корзин теперь имеют меньше
3. Обычно генерируется сервером, можно установить время истечения срока действия. Если файл cookie создается на стороне браузера, по умолчанию срок его действия истекает после закрытия браузера.
4. Он будет каждый раз передаваться в заголовке HTTP.Если вы используете файлы cookie для сохранения слишком большого объема данных, это вызовет проблемы с производительностью.
5. Нативный API не так дружелюбен, как хранилище, и вам нужно самостоятельно инкапсулировать функцию
Использование (API)
Файл cookie, отправляемый сервером клиенту (HTTP-заголовок, без параметров):Set-Cookie: <cookie-name>=<cookie-value>
(имя необязательно)
Файл cookie, отправляемый сервером клиенту (HTTP-заголовок с параметрами):Set-Cookie: <cookie-name>=<cookie-value>;(可选参数1);(可选参数2)
Клиент устанавливает cookie:
document.cookie = "<cookie-name>=<cookie-value>;(可选参数1);(可选参数2)"
Дополнительные параметры:Expires=<date>
: максимальное время действия файла cookie, если не установлено, время жизни файла cookie совпадает с периодом сеанса.
Max-Age=<non-zero-digit>
: количество секунд после создания файла cookie до истечения срока его действия.
Domain=<domain-value>
: Указывает доменное имя хоста, на который может быть доставлен файл cookie.Если задано доменное имя первого уровня, также можно получить доменное имя второго уровня.
Path=<path-value>
: Укажите URL-адрес, например, укажите path=/docs, затем "/docs", "/docs/Web/", "/docs/Web/Http" соответствуют условиям соответствия.
Secure
: файл cookie должен быть отправлен обратно на сервер, когда запрос использует протокол SSL или HTTPS.
HttpOnly
: Клиент не может изменить файл cookie. Клиент не может использовать этот параметр при настройке файла cookie. Обычно он используется сервером.
Пример:
Set-Cookie: sessionid=aes7a8; HttpOnly; Path=/
document.cookie = "KMKNKK=1234;Sercure"
Необязательный префикс:__Secure-
:к__Secure-
файл cookie с префиксом, должен быть установлен с безопасным атрибутом и должен применяться к защищенным страницам (например, с использованием HTTPS)
__Host-
:к__Host-
Префиксные файлы cookie должны быть установлены с безопасным атрибутом и должны применяться к защищенным страницам (например, с использованием HTTPS). Атрибут domian не должен быть установлен (это может помешать доменному имени второго уровня получить файл cookie доменного имени первого уровня), а значение атрибута пути должно быть «/».
Пример использования префикса:
Set-Cookie: __Secure-ID=123; Secure; Domain=example.com
Set-Cookie: __Host-ID=123; Secure; Path=/
document.cookie = "__Secure-KMKNKK=1234;Sercure"
document.cookie = "__Host-KMKNKK=1234;Sercure;path=/"
Session
основная концепция
Сеанс — это механизм, используемый для идентификации конкретного пользователя, когда сервер записывает состояние пользователя по протоколу HTTP без сохранения состояния. Это структура данных, хранящаяся на сервере для отслеживания состояния пользователя, которая может храниться в файле, базе данных или кластере.
Этот сеанс исчезает после закрытия браузера, и сеанс становится недоступным при следующем его открытии. На самом деле дело не в том, что Сессия исчезла, а в том, что изменился Идентификатор Сеанса.Сервер может по-прежнему хранить ваш последний Идентификатор Сеанса и его информацию о Сеансе, но они находятся в бесхозном состоянии и могут быть удалены через некоторое время. .
Большинство приложений используют файлы cookie для реализации отслеживания сеанса.Когда сеанс создается в первый раз, сервер сообщает клиенту в протоколе HTTP, что идентификатор сеанса должен быть записан в файл cookie, и идентификатор сеанса будет отправлен для каждого последующий запрос к серверу
Связь и разница с файлами cookie:
1,Session
Это структура данных, сохраняемая на сервере для отслеживания статуса пользователей.Эти данные могут храниться в кластерах, базах данных и файлах.Cookie
Это механизм сохранения клиентом информации о пользователе, который используется для записи некоторой информации о пользователе, а также способ реализации сеанса.
2,Cookie
из安全性
Как правило, другие могут хранить локальныеCookie
и выполнятьCookie
изменять. Прежде всего, исходя из соображений безопасности, выберитеSession
лучше. Важная интерактивная информация, такая как разрешения, должна быть размещена вSession
, размещена общая информационная записьCookie
Достаточно.
3. ОдноместныйCookie
Сохраняемые данные не могут превышать 4K, и многие браузеры ограничивают сайт сохранением до 20Cookie
.
4. Когда количество посещений увеличивается,Session
Это сильно отнимет производительность сервера. Принимая во внимание снижение производительности сервера, его следует использовать при необходимости.Cookie
.
5.Session
зависимости времени выполненияSession ID
,а такжеSession ID
хранится в куки. То есть, если браузер отключаетCookie
,Session
также потерпит неудачу (но может быть достигнуто другими способами, например, вurl
пройти вSession ID
, то есть sid=xxxx).