Существует ли формальное определение целостности сеанса в отношении сервлетов?
Этот вопрос связан с другим существующим вопросом SO. Метод getSession(boolean) HttpServletRequest упоминает целостность сеанса, но не определяет концепцию.
Я не мог найти официальное определение. Есть ли? Кто-нибудь знает, какие правила формально определяют, когда сеанс в или из целостности? Благодарю.
3 ответа
Это относится к концепции связи сеанса сервера с сеансом клиента (веб-браузера) с помощью cookie.
Я не уверен, насколько вы знакомы с веб-приложениями на Java, но контейнеры сервлетов могут отслеживать сеансы, добавляя параметр в URL (обычно называемый jsessionid) или отправляя cookie клиенту. Я думаю, что это сбивает с толку, потому что отслеживание сеанса является синонимом целостности сеанса.
Я не думаю, что есть особый смысл для термина "целостность сеанса". Сеанс - это просто хранилище данных, поддерживаемое между пользовательскими запросами на данные конкретного приложения. Хотя клиент предоставляет одинаковые и действительные идентификаторы сеанса в своих запросах, приложение гарантированно будет иметь согласованные данные сеанса, то есть то, что приложение поместило в сеанс, оно также вернется. Итак, я бы относился к "целостности" как к общему пониманию этого слова:
Целостность - это концепция согласованности действий, ценностей, методов, мер, принципов, ожиданий и результатов.
Целостность сеанса определяется контейнером сервлетов. Целостность сеанса означает последовательность сеансов: т.е. отслеживание сеанса.
Контейнер сервлета может использовать (насколько мне известно) 2 типа отслеживания сеанса:
- Cookie, храня
JSESSIONID
в печенье. - Перезапись URL, добавив
JSESSIONID
как фрагмент (не как параметр, и есть причины, почему) в URL.
Контейнер сервлета должен убедиться, что он отслеживает свои сеансы с последовательностью.
Ресурсы:
- Сервлет Java (Википедия)