2014-04-02 2 views
1

Я использую балансировку нагрузки с Tomcat7, и прямо сейчас наш объект HttpSession всегда возвращает новый сеанс. Я предполагаю, что информация, связывающая браузер с сервером, не отправляется на сервер.Как связать объект HttpSession с браузером?

Является ли сеанс отображением набора токенов в клиенте на стороне клиента? Если да, то отправляется ли он в заголовке HTTP с каждым запросом? И если да, то на что это похоже?

+0

Балансировщик нагрузки должен поддерживать идентификатор сеанса во всех запросах при подключении через балансировщик нагрузки в браузере. Какой LB вы используете, как вы его настроили и как вы подключаетесь? – Kon

+0

Взгляните на http://en.wikipedia.org/wiki/Session_ID – Loc

+0

Его хранят в файле cookie с ключом 'jsessionid'. Читайте о [В каких условиях создан JSESSIONID?] (Http://stackoverflow.com/questions/595872/under-what-conditions-is-a-jsessionid-created) – Braj

ответ

1

Каждый раз, когда вы сначала подключаетесь к серверу, jsessionid генерируется и сохраняется в файле cookie на стороне клиента. Это jsessionid - это то, что идентифицирует ваш сеанс на сервере. Таким образом, объект HttpSession генерируется на стороне сервера, который содержит все детали вашего конкретного сеанса до истечения срока его действия. Да jsessionid отправляется каждый раз, когда вы отправляете запрос на сервер. Единственный способ предотвратить это - если браузер не разрешает сохранение файлов cookie. В этом случае существуют другие механизмы, которые все еще могут гарантировать сохранение jsessionid. В любом случае, это мое понимание процесса. Надеюсь это поможет.

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