2011-02-01 2 views
7

Что называется сессионным хранилищем в контексте веб-приложений/веб-сайтов?Что называется сессионным хранилищем?

Является ли это чем-то большим, чем временным хранилищем переменных сеанса?

+0

Сохраненные данные будут удалены после закрытия браузера? – JCOC611

+1

Да, эти данные хранятся в переменных сеанса, но что такое хранилище сеансов? Это нечто большее, чем временный магазин ... об этом я и говорю! –

+0

в контексте какой платформы именно? Я ожидаю, что это имеет разные значения на разных платформах. –

ответ

16

Обычно первый запрос пользователя на сайт устанавливает сеанс. Сеанс имеет ключ, который передается пользователю как файл cookie, так что с каждым последующим запросом извлекается тот же сеанс.

В хранилище сеансов может храниться информация об этом пользователе, которого вы не хотите (или не можете из-за ограничения длины файлов cookie), чтобы положить в файл cookie, например, текущий идентификатор пользователя или содержимое корзина для покупок. Это обычно представляет собой некоторую сериализованную структуру данных в зависимости от используемого языка/структуры.

Причина, по которой вы могли бы реализовать хранилище сеансов во внешней базе данных, а не на локальном веб-сервере, - это учетная запись, если в пуле есть несколько веб-серверов; таким образом, если первый запрос пользователя отправился на сервер A, а следующий отправился на сервер B, ваше веб-приложение все равно может получать одни и те же данные сеанса каждый раз.

+1

Становится ли это проблемой с несколькими веб-серверами? для этого нужны все веб-приложения, которые основаны на нескольких веб-серверах? –

+4

Да, если у вас есть несколько серверов за балансировщиком нагрузки, вам необходимо иметь общий сеанс хранения некоторой формы. В противном случае, если на каждом сервере будет сохранено собственное хранилище сеансов, пользователь столкнется с непоследовательным поведением между просмотрами страниц, ajax-запросами и т. Д. –

Смежные вопросы