Сессия — это способ идентификации HTTP-клиентов. Сессия строго привязана к IP, User-Agent и пути запроса без файла.
При новом запросе Spectr пытается найти для него существующую сессию, если подходящая сессия не найдена — создаёт новую. При этом новая сессия не добавляется в хранилище, если запрос был неуспешным (код возврата отличен от 2xx).
Если у сессии нет активных соединений и не было обращений более 600 секунд, то сессия удаляется из хранилища.
Если сессия прошла авторизацию один раз, то при следующих запросах авторизация проверяться не будет (таким образом реализуется авторизация и подсчёт количества клиентов для HLS).
Каждая сессия характеризуется уникальным токеном, который можно передать HTTP-параметром token
при первом запросе. Если токен не передан, он будет сгенерирован автоматически. С данным токеном может быть только одна сессия. Токен записывается в Cookie X-Mmxx-Session
.
Сессия ищется по параметрам token, IP, User Agent, путь. Если сессия не найдена, то создаётся новая.
Понимание сессий необходимо для правильной настройки механизма авторизации доступа к контенту в Spectr и в Middleware.