Назад к вопросам
Junior
132
questionbank

Объясните разницу между cookies, sessionStorage и localStorage.

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Область видимости: Cookies доступны как на стороне клиента, так и на стороне сервера. sessionStorage и localStorage доступны только на стороне клиента.

Время жизни: Для cookies время жизни устанавливается при создании (с помощью атрибута expires или max-age). Если не указано, cookie удаляется при закрытии браузера. sessionStorage хранит данные только в течение текущей сессии (до закрытия вкладки или окна браузера). localStorage хранит данные бессрочно, пока они не будут явно удалены.

Размер: Максимальный размер для cookies составляет около 4 КБ. Для sessionStorage и localStorage — от 5 МБ до 10 МБ, зависит от браузера.

Отправка с каждым запросом: Cookies автоматически отправляются с каждым HTTP-запросом к домену, для которого они установлены, что может увеличить трафик. Данные в sessionStorage и localStorage не отправляются на сервер.

Способ доступа: Доступ к cookies осуществляется через document.cookie (строка). Доступ к sessionStorage и localStorage осуществляется через соответствующие объекты с использованием методов setItem, getItem, removeItem и clear.

// Установка cookie
document.cookie = "username=John Doe; expires=Thu, 18 Dec 2023 12:00:00 UTC; path=/";

// Получение cookie
let x = document.cookie;

// Установка данных в sessionStorage
sessionStorage.setItem("lastname", "Smith");

// Получение данных из sessionStorage
let y = sessionStorage.getItem("lastname");

// Установка данных в localStorage
localStorage.setItem("firstname", "Jane");

// Получение данных из localStorage
let z = localStorage.getItem("firstname");
Feature cookies sessionStorage localStorage
Область видимости Клиент и Сервер Только Клиент Только Клиент
Время жизни Устанавливается при создании (expires/max-age), иначе до закрытия браузера До закрытия вкладки/окна браузера Бессрочно (пока не удалено явно)
Размер ~4 КБ ~5-10 МБ (зависит от браузера) ~5-10 МБ (зависит от браузера)
Отправка с запросом Да Нет Нет
Доступ document.cookie sessionStorage.getItem/setItem localStorage.getItem/setItem