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

Чем отличаются session cookie и persistent cookie?

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

Session cookie — это временные файлы, которые удаляются после закрытия браузера. Persistent cookie сохраняются на устройстве пользователя и остаются доступными после закрытия браузера, пока не истечет срок их действия или они не будут удалены вручную.

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

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

Session Cookies

Session cookies создаются и используются для хранения информации о сессии пользователя. Они временные и удаляются автоматически, когда пользователь закрывает браузер. Эти cookies полезны для временного хранения данных, таких как содержимое корзины покупок в интернет-магазине или информация о текущей сессии пользователя.

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

# Пример на Python с использованием Flask
​
from flask import Flask, session
​
app = Flask(__name__)
app.secret_key = 'supersecretkey'
​
@app.route('/')
def index():
    # Устанавливаем значение в session cookie
    session['username'] = 'user123'
    return 'Session cookie установлена'
​
@app.route('/get')
def get_session():
    # Получаем значение из session cookie
    username = session.get('username', 'Неизвестный пользователь')
    return f'Имя пользователя: {username}'
​
if __name__ == '__main__':
    app.run()
  • session['username'] = 'user123': Устанавливает значение в session cookie. Это значение будет доступно только в течение текущей сессии.
  • session.get('username', 'Неизвестный пользователь'): Извлекает значение из session cookie. Если cookie не существует, возвращает 'Неизвестный пользователь'.

Persistent Cookies

Persistent cookies сохраняются на устройстве пользователя и остаются доступными после закрытия браузера. Они имеют срок действия, который может быть установлен разработчиком. Эти cookies полезны для хранения данных, которые должны сохраняться между сессиями, например, предпочтения пользователя или данные для автоматического входа.

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

<!-- Пример на JavaScript -->
​
<script>
  // Устанавливаем persistent cookie с помощью JavaScript
  function setPersistentCookie(name, value, days) {
    const date = new Date();
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    const expires = "expires=" + date.toUTCString();
    document.cookie = name + "=" + value + ";" + expires + ";path=/";
  }
​
  // Устанавливаем cookie, которая будет действительна 7 дней
  setPersistentCookie('username', 'user123', 7);
</script>
  • date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)): Устанавливает дату истечения срока действия cookie.
  • document.cookie = name + "=" + value + ";" + expires + ";path=/": Создает persistent cookie с указанным именем, значением и сроком действия.

Основные отличия

  1. Время жизни: Session cookies удаляются при закрытии браузера, тогда как persistent cookies сохраняются на устройстве до истечения срока действия или удаления пользователем.
  2. Использование: Session cookies подходят для временных данных, таких как информация о текущей сессии, в то время как persistent cookies используются для данных, которые должны сохраняться между сессиями, например, настройки пользователя.
  3. Безопасность: Session cookies считаются более безопасными, так как они не сохраняются на устройстве после завершения сессии, что снижает риск их кражи.

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

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

Твои заметки