← Назад ко всем вопросам

В чем разница между cookies и токеном в localStorage/sessionStorage?

1️⃣ Как кратко ответить

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

2️⃣ Подробное объяснение темы

Cookies и веб-хранилища (localStorage и sessionStorage) — это механизмы, которые позволяют веб-приложениям сохранять данные на стороне клиента. Они имеют разные характеристики и применяются в различных сценариях.

Cookies:

  • Что это: Cookies — это небольшие фрагменты данных, которые сервер отправляет браузеру. Браузер сохраняет их и автоматически отправляет обратно на сервер с каждым HTTP-запросом к этому домену.
  • Где хранятся: В браузере, но они ассоциированы с доменом и путём, что позволяет серверу идентифицировать их.
  • Срок действия: Cookies могут иметь срок действия, после которого они автоматически удаляются. Это может быть как несколько секунд, так и несколько лет.
  • Область применения: Чаще всего используются для аутентификации пользователей, отслеживания сессий, хранения пользовательских предпочтений и других данных, которые должны быть доступны на сервере.
  • Безопасность: Cookies могут быть защищены с помощью флагов Secure (только для HTTPS) и HttpOnly (недоступны через JavaScript).

LocalStorage и sessionStorage:

  • Что это: Это объекты, предоставляемые браузером для хранения данных на стороне клиента. Они не отправляются на сервер с HTTP-запросами.
  • Где хранятся: В браузере, в рамках домена. Доступ к ним возможен только через JavaScript.
  • Срок действия:
    • LocalStorage: Данные сохраняются без срока действия и остаются доступными даже после закрытия и повторного открытия браузера.
    • sessionStorage: Данные сохраняются только на время сессии. Они удаляются при закрытии вкладки или окна браузера.
  • Область применения: Используются для хранения данных, которые не нужно отправлять на сервер, например, временные настройки интерфейса, данные форм и т.д.
  • Безопасность: Доступ к данным возможен только через JavaScript, что делает их уязвимыми для XSS-атак, если не предприняты меры безопасности.

Пример использования:

// Сохранение токена в localStorage
localStorage.setItem('authToken', 'your-token-value');
​
// Получение токена из localStorage
const token = localStorage.getItem('authToken');
​
// Удаление токена из localStorage
localStorage.removeItem('authToken');
  • localStorage.setItem('authToken', 'your-token-value'); — сохраняет токен в localStorage под ключом 'authToken'.
  • localStorage.getItem('authToken'); — извлекает токен из localStorage.
  • localStorage.removeItem('authToken'); — удаляет токен из localStorage.

Заключение:

Cookies и веб-хранилища решают разные задачи. Cookies подходят для данных, которые должны быть доступны на сервере, в то время как localStorage и sessionStorage удобны для хранения данных на стороне клиента, которые не требуют отправки на сервер. Выбор между ними зависит от конкретных требований приложения и сценариев использования.

Тема: Web основы и браузер
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки