куки и сеансы
И файлы cookie, и сеансы являются методами сеанса, которые обычно используются для отслеживания личности пользователей, просматривающих веб-страницы.
Разница между файлом cookie и сеансом
- Данные cookie хранятся на стороне клиента, а данные сеанса — на стороне сервера.
- Файлы cookie не являются безопасными по своей сути, и сеансы следует использовать из соображений безопасности.
- Сессия будет сохранена на сервере в течение определенного периода времени. Если количество посещений относительно велико, оно потребляет производительность сервера. Файлы cookie следует использовать для снижения накладных расходов на производительность сервера.
- Единые сохраненные данные Cookie не могут превышать 4K, многие браузеры ограничивают доменное имя для сохранения до 50 файлов cookie. Храните важной информации, такой как вход в систему в качестве сеанса, другая информация может быть размещена в файла cookie при необходимости.
Сессия в основном используется сервером для обработки данных.Эта статья в основном посвящена интерфейсной технологии, поэтому я не буду вдаваться в подробности.
Использование файлов cookie
файлы cookie доступны черезdocument.cookie
Получить все файлы cookie. Это строка в виде пар ключ-значение. Это немного хлопотно в эксплуатации, и можно использовать упакованную библиотеку, напримерjs-cookie
нажми на меня. API также очень лаконичен:
Cookies.set("name", "value", { expires: 7 }); // 设置一个cookie,7天后失效
Cookies.get("name"); // => 'value'
Cookies.remove("name");
локальное хранилище и хранилище сессий
В сценарии локального веб-хранилища использование файлов cookie связано с различными ограничениями, наиболее важным из которых является то, что емкость хранилища слишком мала, и данные не могут храниться постоянно.
По стандарту HTML 5 для нас появились localStorage и sessionStorage.
- Сходства и различия между файлами cookie, localStorage и sessionStorage:
Классификация | Жизненный цикл | место хранения | место хранения |
---|---|---|---|
cookie | Он хранится в памяти по умолчанию и истечет при закрытии браузера (если установлено время истечения, он истечет после истечения времени) | 4KB | Сохраняется на стороне клиента, будет приноситься с каждым запросом |
localStorage | Теоретически, он действителен постоянно, если только активно не очищается. | 4,98 МБ (разные браузеры, сафари 2,49 МБ) | Хранится на стороне клиента и не взаимодействует со стороной сервера. Экономьте сетевой трафик |
sessionStorage | Действителен только для текущего веб-сеанса и будет очищен после закрытия страницы или браузера. | 4,98 МБ (в некоторых браузерах нет ограничений) | То же |
- Сценарий применения: localStorage подходит для постоянных кэшированных данных, таких как конфигурация предпочтений страницы по умолчанию и т. д.; sessionStorage подходит для одноразового временного хранения данных.
WebStorage ( localStorage и sessionStorage ) сам по себе предоставляет лучшие методы:
localStorage.setItem("name", "value");
localStorage.getItem("name"); // => 'value'
localStorage.removeItem("name");
localStorage.clear(); // 删除所有数据
sessionStorage.setItem("name", "value");
sessionStorage.setItem("name");
sessionStorage.setItem("name");
sessionStorage.clear();
Меры предосторожности:
- Когда localStorage пишет, если емкость превышена, будет сообщено об ошибке, но ранее сохраненные данные не будут потеряны.
- Когда емкость хранилища localStorage почти заполнена, производительность метода getItem резко снизится.
- веб-хранилище больше зависит от сохранения сложных типов данных
JSON.stringify
, проблема производительности на мобильном терминале более очевидна.
Совместимость с браузером
Совместимость с файлами cookie не представляет проблемы; localStorage и sessionStorage также поддерживают браузеры IE8+ и в основном могут использоваться как обычно.
внеклассный
Еще небольшой вопрос, помимо ручных настроекlocalStorage.clear()
, а какие еще способы потерять localStorage?
насчет нас
Передовая команда Kuaigou Taxi занимается обменом передовыми технологиями и регулярно публикует высококачественные статьи. Добро пожаловать, обратите внимание и лайкните. Статья будет опубликована в паблике одновременно, если вы хотите получать актуальную информацию как можно быстрее, просто отсканируйте ее!