Ответ
Сессия — это временное хранение данных пользователя на сервере между запросами. В отличие от кук, которые хранятся на клиенте, сессия хранится на сервере и идентифицируется уникальным ID (обычно передаётся через куку).
Пример работы:
- Пользователь логинится → сервер создаёт сессию с данными (например,
user_id
) - Сервер отправляет в ответе куку с
session_id
- При следующих запросах браузер автоматически отправляет эту куку
- Сервер по
session_id
находит данные сессии
// Express.js пример
app.post('/login', (req, res) => {
req.session.userId = 123; // Записываем данные в сессию
res.send('Logged in!');
});
app.get('/profile', (req, res) => {
if (!req.session.userId) return res.status(401).send('Unauthorized');
res.send(`User ID: ${req.session.userId}`);
});
Особенности:
- Безопаснее кук (данные на сервере)
- Истекает при закрытии браузера или по таймауту
- Требует серверного хранилища (БД, Redis)