Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: cookie, document.cookie, HTTP, browser storage, session management

Как установить и прочитать Cookie в браузере?

Этот вопрос проверяет знание работы с HTTP-куками в браузере, что необходимо для управления сессиями, аутентификацией и хранением пользовательских предпочтений.

Короткий ответ

Куки — это небольшие строки данных, которые сервер отправляет браузеру и которые браузер сохраняет и отправляет обратно с последующими запросами. Установить куку можно, присвоив строку свойству `document.cookie`. Прочитать все куки для текущего домена можно, обратившись к тому же свойству `document.cookie`. Важно помнить о параметрах кук, таких как срок действия (expires/max-age), путь (path) и флаг HttpOnly, который запрещает доступ из JavaScript.

Длинный ответ

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

Установка Cookie

Чтобы установить куку из JavaScript, вы присваиваете строку свойству document.cookie. Эта строка должна содержать имя, значение и дополнительные атрибуты, разделённые точкой с запятой. Важно: присваивание не перезаписывает все существующие куки, а добавляет или обновляет только указанную.

// Установка простой куки
document.cookie = "username=JohnDoe";

// Установка куки с параметрами: срок действия, путь и флаг Secure
const expiryDate = new Date();
expiryDate.setDate(expiryDate.getDate() + 7); // Кука на 7 дней
document.cookie = `sessionId=abc123; expires=${expiryDate.toUTCString()}; path=/; Secure`;

Чтение Cookie

Все куки для текущего домена доступны как одна строка через document.cookie. Чтобы получить значение конкретной куки, эту строку нужно распарсить.

// Получение всех кук в виде строки
const allCookies = document.cookie; // Например: "username=JohnDoe; sessionId=abc123"

// Функция для получения значения по имени
function getCookie(name) {
  const cookies = document.cookie.split('; ');
  for (let cookie of cookies) {
    const [key, value] = cookie.split('=');
    if (key === name) return value;
  }
  return null;
}

console.log(getCookie('username')); // Выведет: JohnDoe

Ключевые атрибуты и применение

  • expires и max-age: определяют срок жизни куки. Без них кука будет сессионной и удалится при закрытии браузера.
  • path: указывает путь на сервере, для которого кука будет отправляться. По умолчанию — текущий путь.
  • domain: позволяет указать домен, для которого кука действительна.
  • Secure: кука будет отправляться только по защищённому протоколу HTTPS.
  • HttpOnly: этот атрибут, устанавливаемый сервером, запрещает доступ к куке из JavaScript, что защищает от XSS-атак.

Куки также могут быть установлены сервером с помощью HTTP-заголовка Set-Cookie в ответе, что является основным способом для аутентификации.

Вывод: Используйте куки, когда вам необходимо хранить данные, которые должны автоматически отправляться на сервер с каждым запросом, например, токены аутентификации или идентификаторы сессии. Для хранения больших объёмов данных, не требующих отправки на сервер, предпочтительнее использовать localStorage или sessionStorage.

Уровень

  • Рейтинг:

    3

  • Сложность:

    2

Навыки

  • JavaScript

    JavaScript

  • HTML

    HTML

Ключевые слова

#cookie

#document.cookie

#HTTP

#browser storage

#session management

Подпишись на React Developer в телеграм