Встречается на собеседованиях • сегодня
В чем разница между JWT и сессией
JWT (JSON Web Token) — это токен, содержащий данные в закодированном виде (обычно в Base64) и подпись для проверки подлинности. Он хранится на клиенте (например, в localStorage или куках) и отправляется с каждым запросом. Не требует хранения состояния на сервере.
Сессия — это механизм, при котором сервер хранит данные пользователя (например, в памяти или БД). Клиент получает только идентификатор сессии (обычно в куке), а сервер проверяет его при каждом запросе.
Основные отличия:
- Хранение: JWT — клиент, сессия — сервер.
- Масштабируемость: JWT проще масштабировать (stateless), сессии требуют синхронизации (stateful).
- Отзыв: JWT сложнее отозвать (нужны черные списки или короткий TTL), сессию можно удалить сразу.
- Безопасность: JWT уязвим к XSS (если в localStorage), сессия — к CSRF (но защищается токенами).
java
// Пример JWT (используя библиотеку jjwt)
String jwt = Jwts.builder()
.setSubject("user123")
.signWith(SignatureAlgorithm.HS256, "secret")
.compact();
// Пример сессии (в сервлете)
HttpSession session = request.getSession();
session.setAttribute("user", "user123");
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы