Я запутался в документации javax.servlet.http.HttpSession .
Там написано:
Сеансы используются для поддержания состояния и идентификации пользователя в нескольких
страница запросов. Сеанс можно поддерживать с помощью файлов cookie или
по перезаписи URL.
Теперь и файлы cookie, и перезапись URL-адреса обрабатываются кодом приложения на сервере (т.е. нашим кодом).
Затем говорится о том, когда сеанс рассматривается как new
:
Сервер считает сеанс новым, пока он не был присоединен
клиент. Пока клиент не присоединится к сеансу, метод isNew
возвращает true. Значение true может указывать на один из следующих трех случаев:
1. клиент еще не знает о сеансе
2. сеанс еще не начался
3. клиент решает не присоединяться к сеансу. Этот случай произойдет, если клиент поддерживает только файлы cookie и решает отклонить файлы cookie.
отправлено сервером. Если сервер поддерживает перезапись URL, этот случай
обычно не происходит.
Мне не ясно, когда считается / имелось в виду, что client has joined the session
.
Я имею в виду, если я не использую файлы cookie из своего веб-приложения (или перезаписи URL), и у меня есть следующее:
- POST с IP A на сервер
- 200 OK с сервера на A
- POST с IP A на сервер
На шаге 3 session.isNew()
вернет true или false? Мне не ясно из документа.
Будет ли возвращено значение false (т. Е. Сеанс не новый), и мне придется вызвать session.invalidate()
, чтобы создать новый сеанс?
Причина, по которой меня это смущает, заключается в том, что я отлаживаю часть кода, где клиент является приложением HTTP, а не веб-браузером, и я вижу, что на шаге 3 session.isNew()
не возвращает true
, хотя нет файлов cookie или перезапись URL в коде сервера.
Поэтому я не могу понять, что происходит под капотом.
Любая информация, которая может помочь понять это?