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


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

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

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

1 4

1 ответ:

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

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

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