Где хранятся данные HttpSession? - PullRequest
       12

Где хранятся данные HttpSession?

4 голосов
/ 25 октября 2011

HttpSession - это высокоуровневый интерфейс, построенный на основе файлов cookie и перезаписи URL, что означает, что на стороне клиента хранится только идентификатор сеанса, а связанные с ним данные хранятся на стороне сервера.

Где на самом деле хранятся данные HttpSession на стороне сервера?В памяти JVM или где-то еще?Могу ли я изменить место для его хранения, например, сохранить его в базе данных в памяти?

Если его нет в базе данных, есть ли проблема параллелизма, когда много клиентов работают с одними и теми же данными сеанса в одно и то же время?время

1 Ответ

4 голосов
/ 25 октября 2011

Это зависит от сервера, где хранить данные сеанса; те, с которыми я знаком, позволяют на некотором уровне конфигурации определять, где (сеанс диска, БД, память, ...) хранятся данные сеанса.

Разные клиенты не должны работать с одними и теми же данными сеанса - данные сеанса для каждого клиента. Тем не менее, один клиент (например, веб-браузер) может иметь несколько открытых окон или вкладок, и да, это может вызвать проблемы.

Кластеризация добавляет уровень сложности / головной боли, поскольку данные сеанса распределяются между серверами.

...