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

Можно ли поставить удаление cookie через 3 дня?

1.7 Middle🔥 111 комментариев
#Браузер и сетевые технологии

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI4 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Можно ли поставить удаление cookie через 3 дня?

Да, абсолютно можно установить удаление cookie через 3 дня, и это стандартная практика для управления временем жизни данных на стороне клиента. Для этого используется свойство max-age или expires при создании cookie через JavaScript или при отправке с сервера.

Механизмы установки времени жизни cookie

Существует два основных способа задать срок жизни cookie:

  1. max-age (в секундах): Указывает, сколько секунд cookie будет существовать с момента установки. Для 3 дней нужно указать 259200 секунд (3 дня * 24 часа * 60 минут * 60 секунд). Это более современный и рекомендуемый подход, особенно для клиентской установки.
  2. expires (дата): Указывает конкретную дату и время в формате UTC, когда cookie будет удалено. Это исторический способ, который также поддерживается.

Примеры реализации на клиенте (JavaScript) и сервере

Пример 1: Использование max-age в JavaScript

Для установки cookie с помощью JavaScript в браузере, которая будет автоматически удалена через 3 дня, используется следующий код:

// Установка cookie с именем 'userToken' и сроком жизни 3 дня (259200 секунд)
document.cookie = "userToken=abc123def456; max-age=259200; path=/; secure; samesite=lax";

Разберем параметры:

  • userToken=abc123def456 — имя и значение cookie.
  • max-age=259200 — ключевой параметр, задающий срок жизни в секундах.
  • path=/ — cookie будет доступна на всех страницах сайта.
  • secure — cookie будет передаваться только по HTTPS (важно для безопасности).
  • samesite=lax — защита от некоторых типов CSRF-атак.

Пример 2: Использование expires в JavaScript

Альтернативный способ с использованием даты удаления:

// Создаем объект Date на 3 дня вперед
const expirationDate = new Date();
expirationDate.setDate(expirationDate.getDate() + 3);

// Форматируем дату в строку, требуемую для cookie (UTC)
const expiresString = expirationDate.toUTCString();

// Устанавливаем cookie с параметром expires
document.cookie = `sessionId=xyz789; expires=${expiresString}; path=/`;

Пример 3: Установка cookie с сервера (HTTP-ответ, Node.js)

При работе на сервере (например, в Node.js с Express) cookie устанавливаются через заголовок Set-Cookie в HTTP-ответе.

// Пример в Express.js
app.get('/set-cookie', (req, res) => {
    // Используем max-age
    res.cookie('preferences', 'dark_mode', {
        maxAge: 259200000, // В миллисекундах для Express! (259200 * 1000)
        httpOnly: true, // Cookie недоступна из JavaScript (для безопасности)
        secure: true,
        sameSite: 'strict'
    });
    res.send('Cookie установлена на 3 дня');
});

// Альтернатива с expires
const futureDate = new Date(Date.now() + 259200000);
res.cookie('analytics', 'tracked', {
    expires: futureDate,
    path: '/'
});

Ключевые особенности и рекомендации

  • Автоматическое удаление: После установки max-age или expires браузер самостоятельно удалит cookie в указанный момент. Нет необходимости писать дополнительный код для очистки.
  • Приоритет параметров: Если указаны одновременно max-age и expires, современные браузеры обычно используют max-age.
  • Единицы измерения: Обратите внимание на разницу единиц: в чистом JavaScript и заголовке HTTP используется секунды для max-age, а в многих фреймворках (Express, Django) может использоваться миллисекунды. Это распространенный источник ошибок.
  • Отрицательное значение: Если установить max-age=0 или expires в прошлом, cookie удаляется немедленно. Это стандартный способ удаления cookie из JavaScript.
// Удаление cookie 'userToken'
document.cookie = "userToken=; max-age=0; path=/";
  • Без указания времени: Если не задать max-age или expires, cookie становится сессионной (session cookie) и удаляется при закрытии браузера.

Заключение

Таким образом, установка удаления cookie через 3 дня является не только возможной, но и простой задачей. Для надежной реализации следует:

  1. Использовать параметр max-age (в секундах или миллисекундах, зависящих от контекста).
  2. Учитывать требования безопасности: для токенов добавлять httpOnly и secure, для защиты от атак — sameSite.
  3. Помнить, что управление cookie на стороне клиента через document.cookie имеет ограничения (например, нельзя установить httpOnly).

Этот механизм широко применяется для сохранения настроек пользователя, управления сессиями с ограниченным временем жизни, аналитических данных и других временных меток на стороне клиента.

Можно ли поставить удаление cookie через 3 дня? | PrepBro