powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Хранение сессии в бд
15 сообщений из 15, страница 1 из 1
Хранение сессии в бд
    #38404058
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа.
Подскажите пожалуйста, какие есть плюсы и минусы хранить состояние сесии для REST сервиса в БД?
...
Рейтинг: 0 / 0
Хранение сессии в бд
    #38404062
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть система, взаимодействующая по REST с клиентами.
При первом логине клиенту выдается авторизационный ключ, а в системе создается session.
При следующем запросе клиент предоставляет ключ и эта сессия находится по нему, если она валидная, то выдаются запрошенные ресурсы.
Есть требование хранить сессию в бд.
Какие минусы плюсы у этого решения?
Какие нюансы в реализации, на что надо обратить внимание?
Спасибо.
...
Рейтинг: 0 / 0
Хранение сессии в бд
    #38404070
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень, очень общий ответ, который ни в коему случае нельзя рассматривать, как руководство к действию.
Плюсы:
- персистентность, ваши сессии переживут падение app server
- простота реализации
Минусы:
- относительно медленно (по сравнению с хранением сессии только в памяти)
- может стать узким местом при наращивании нагрузки
...
Рейтинг: 0 / 0
Хранение сессии в бд
    #38404359
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
osonПри первом логине клиенту выдается авторизационный ключ, а в системе создается session.
При следующем запросе клиент предоставляет ключ и эта сессия находится по нему, если она валидная, то выдаются запрошенные ресурсы.
По ТЗ слово session можно заменить куки.
...
Рейтинг: 0 / 0
Хранение сессии в бд
    #38404366
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123По ТЗ слово session можно заменить куки.Это как? В куках хранят идентификатор сессии, а саму сессия хранят на сервере.
...
Рейтинг: 0 / 0
Хранение сессии в бд
    #38404407
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvPetro123По ТЗ слово session можно заменить куки.Это как? В куках хранят идентификатор сессии, а саму сессия хранят на сервере.
Всё зависит от того, что и зачем хранится.
- можно ничего не хранить, кроме ID о том что это Петров... чтобы он не вводил пароль.
- можно хранить только дату последнего входа, тогда теряется сам смысл сабжа.
Дату можно и в куке хранить.
...
Рейтинг: 0 / 0
Хранение сессии в бд
    #38404411
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjv- может стать узким местом при наращивании нагрузки
Это спорный вопрос. Обычно узким местом становится репликаций HTTP сессии в JEE на кластере.
В случае хранения сессии в БД, репликация не нужна. Масштабируемость должна быть лучше.
...
Рейтинг: 0 / 0
Хранение сессии в бд
    #38404415
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvЭто как? В куках хранят идентификатор сессии, а саму сессия хранят на сервере.
Не уверен, что именно пытается сказать Petro123. Но есть ещё и такой способ оптимизации сессии, как вынос состояния на клиента.
Т.е. данные сессии хранятся в куках и на странице в подписаном виде. Такой подход может серьезно снизить нагрузку с сервера за счет незначительного прироста трафика.
...
Рейтинг: 0 / 0
Хранение сессии в бд
    #38404423
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczТ.е. данные сессии хранятся в куках
именно это.
Не зря же там появилась цела локальная БД в интернет эксплорерах.
...
Рейтинг: 0 / 0
Хранение сессии в бд
    #38404440
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczТакой подход может серьезно снизить нагрузку с сервера за счет незначительного прироста трафика.
А если реализовать полноценное RIA, то даже и прироста трафика не будет. Ведь нет смысла всё состояние гонять на сервер.
...
Рейтинг: 0 / 0
Хранение сессии в бд
    #38404445
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
osonПодскажите пожалуйста, какие есть плюсы и минусы хранить состояние сесии для REST сервиса в БД?
Сессия не имеет отношение к HTTP и REST. Поэтому упоминание REST тут лишнее.
Если же говорить о RIA, где сервер реализован в виде REST сервиса, то возникает вопрос. Почему сессия не живет на клиенте? Зачем она серверу?
...
Рейтинг: 0 / 0
Хранение сессии в бд
    #38404671
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно сказать, что сессия поддерживается на стороне клиента. Клиент получает auth_key при логине и потом при каждом следующем запросе должен отсылать его. А на стороне сервера по этому auth_key каждый раз находится его session object, в котором записано, что этот клиент уже авторизовался, что он имеет определенные права доступа, и если он вызывает сервис, к которому доступа не имеет, то получает сообщение о нехватке прав.
Что тут не так? Какой RIA я не знаю. Я выдаю только REST интерфейс, а что с ним делает разработчик интерфейса на разных клиентах, это его уже дело.
...
Рейтинг: 0 / 0
Хранение сессии в бд
    #38404702
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oson,авторчто он имеет определенные права доступа, и если он вызывает сервис, к которому доступа не имеет, то получает сообщение о нехватке прав.
Вроде бы канонический рест подход состоит в том, чтобы информация о правах доступа каждый раз доставалась из базы, соответственно на сервере ничего хранить не надо.
...
Рейтинг: 0 / 0
Хранение сессии в бд
    #38404705
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
osonМожно сказать, что сессия поддерживается на стороне клиента. Клиент получает auth_key при логине и потом при каждом следующем запросе должен отсылать его. А на стороне сервера по этому auth_key каждый раз находится его session object, в котором записано, что этот клиент уже авторизовался, что он имеет определенные права доступа, и если он вызывает сервис, к которому доступа не имеет, то получает сообщение о нехватке прав.
Это всё? В такой ситуации никаких особых бенефитов при переносе сессии в базу не будет. Даже если репликации сессии нет и нода упадёт, то клиенту просто нужно перелогинится.


osonЧто тут не так? Какой RIA я не знаю. Я выдаю только REST интерфейс, а что с ним делает разработчик интерфейса на разных клиентах, это его уже дело.
Вы знаете своё ТЗ, а мы нет. Поэтому мы отвечаем на общий вопрос устредненной ситуации и не стоит удивлятся тому что ответ может не подходить вашему конкретному случаю.

Если права доступа это всё что хранится в сессии, то эти же данные уже есть в базе. Поэтому хранить отдельно и сессию в базе нет никакого смысла, так же как и перечитывать её при каждом запросе.
...
Рейтинг: 0 / 0
Хранение сессии в бд
    #38404706
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪВроде бы канонический рест подход состоит в том, чтобы информация о правах доступа каждый раз доставалась из базы,
Канонический REST никакого отношения к базе не имеет.

Йуный джавистЪсоответственно на сервере ничего хранить не надо.
Угу. Только потом появится кеш в памяти, для опимизации доступа к БД, который в результате будет работать совершенно идентично HTTP Session.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Хранение сессии в бд
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]