@meta941

Как реализовываются сессии?

Пробую сейчас всякие технологии веб-разработки. Был небольшой опыт на PHP и вот сейчас присмотрелся к Flask.

И у меня назрел такой вопрос: как реализовываются сессии в современных реалиях?
Какой туториал не открываю, что о PHP, что о Flask - всегда натыкаюсь на серверную реализацию сессий, где в куки файлах хранится идентификатор сессии на сервере, который, во вкладке Application браузера, так всегда и называется "session" или "SESSIONID".

Но что-то ничего подобного я не наблюдаю ни на Ютубе(очень страшно), ни на сайте OpenAI с ChatGPT(страшно), ни на Хабре...
(Ну, на хабре я вижу хотя бы UUID и в целом эта вкладка выглядит не так страшно, как у остальных)

Мне бы вообще хотелось бы узнать: какой способ хранения сессий наиболее правильный с точки зрения защиты данных(??? Если эти данные возможно перехватить, например не стоит же в куки файлах хранить пароль ???) и с точки зрения оптимизации (??? Если я буду хранить только UUID - значит другие данные пользователя нужно получать из БД при необходимости, каждый раз выполняя запрос. Не будет ли это вызывать чрезмерную нагрузку на сервер ???)
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Два базовых подхода - stateful и stateless.
В первом случае на сервере хранится состояние сессии, а в обмене с клиентом передаётся только идентификатор этого состояния (та самая кука SESSIONID). Где именно хранится состояние - в отдельном файле, базе данных или отдельном сервисе - определяется архитектурой системы.
Во втором случае состояние хранится в токене, например JWT. Этот токен формируется при аутентификации/авторизации пользователя, хранится на клиенте и передаётся при каждом запросе к серверу (либо в куках, либо в параметрах запроса). При распределённой системе сервер, выдающий токены может быть отделён от остальных а балансировщик может не беспокоиться, на какой именно сервер отправлять запрос.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы