PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

Что такое сессия?

Продвинутые темы

Сессия (session) — это способ сохранить состояние пользователя между HTTP-запросами, поскольку сам HTTP не хранит состояние (stateless).

Проблема

HTTP stateless: каждый запрос независим, сервер «не помнит» пользователя. Сессия решает это, связывая запросы одного пользователя.

Как работает серверная сессия

  1. Пользователь логинится → сервер создаёт сессию и хранит её данные (в памяти/Redis/БД).
  2. Сервер выдаёт session ID в cookie.
  3. С каждым запросом браузер шлёт cookie с session ID.
  4. Сервер по ID находит данные сессии — узнаёт пользователя.
Set-Cookie: sessionId=abc; HttpOnly; Secure; SameSite=Lax

Сессия против JWT

  • Серверная сессия — состояние на сервере, cookie с ID; легко отозвать, но нужно хранилище (stateful).
  • JWT — состояние в токене, сервер не хранит сессию (stateless); масштабируется, но сложнее отзывать.

Безопасность

  • Session ID в HttpOnly cookie (защита от XSS).
  • SameSite (защита от CSRF), Secure.
  • Срок жизни, инвалидация при логауте.

Коротко для собеседования

Сессия хранит состояние пользователя между stateless HTTP-запросами: сервер создаёт сессию, выдаёт session ID в cookie, по нему узнаёт пользователя. Это stateful-подход (данные на сервере), в отличие от stateless JWT. Защита — HttpOnly/Secure/SameSite.

Другие вопросы раздела