При першому запиті сервер створює session_id, зберігає дані сесії і відправляє session_id у cookie. Кожен наступний запит містить cookie з session_id — сервер знаходить дані і «впізнає» користувача.
Сесія — стан на сервері, JWT — стан у токені (на клієнті). Сесію можна одразу відкликати, JWT — тільки після закінчення терміну або через blacklist. Сесії кращі для традиційних веб-застосунків, JWT — для stateless API і мікросервісів.