编程语言
首页 > 编程语言> > java – 关于浏览器会话和会话ID的一些问题/疑问?

java – 关于浏览器会话和会话ID的一些问题/疑问?

作者:互联网

根据我的理解,同一会话在同一浏览器窗口的不同选项卡之间共享.并针对不同的浏览器窗口,不同的会话
被建造.现在我的理解有些问题: –

1)当我在两个不同的浏览器窗口中点击我的Web应用程序时,我在firefox控制台上看到相同的jsession id.会话会话的内容如何
两个不同的浏览器窗口共享.默认情况下,会话是在创建的jsessionId的帮助下通过cookie维护的
通过网络服务器.通过在每个url请求中传递jsessionId来维护会话的URLRewriting维护会话的其他方式.
我可以在项目中看到使用org.tuckey.web.filters.urlrewrite.UrlRewriteFilter,但是这个类文档似乎没有做任何神奇的会话维护.
我不知道如何通过两个不同的浏览器窗口和技术方法来实现相同的会话

2)当我在同一浏览器窗口的两个不同选项卡下点击两个不同的应用程序时相似
可能谷歌和其他一些网站说雅虎,我没有在这两个网站的firefox控制台中看到相同的jsessionId.是网站
在这里做一些特殊的东西来为每个Tab生成新的会话?事实上对于一些网站(可能是谷歌),我没有看到jsessionId
所有在firefox窗口下.怎么可能.我的理解是由网络服务器自动生成并通过
cookies或URLReWriting?

如果有人能够回答我的问题,那将会很有帮助,因为了解这里发布的会话管理的每个要点非常重要

更新: – 让我用不同的方案提出我的问题: –

1)在同一浏览器窗口的两个不同选项卡中输入两个不同的URL(例如google.com和stackoverflow.com).

My Understanding:- Two session will be created as two cookies will be created for two different domain/port

2)在同一浏览器窗口的两个不同选项卡中输入两个相同的URL(例如stackoverflow.com).

My Understanding:- Onesession will be created as same cookies will be reused

3)在两个完全不同的浏览器窗口(firefox)中打两个相同的URL(比如stackoverflow.com).

My Understanding:- how many session will be created in this case?

解决方法:

你的第一个假设是不正确的.如果对cookie使用会话管理(Java servlet容器的默认设置),则会话在同一浏览器实例的所有窗口中都可见.

如果将Java servlet服务器配置为仅对会话使用URL重写,则每个选项卡可以有一个会话.

通常两个不同的Java Web应用程序将始终创建两个不同的会话cookie,仅对其自己的应用程序范围有效. Cookie绑定到域和路径.

PHP这样的其他Web框架可以处理这种完全不同的问题.

标签:java,session,session-cookies,session-management
来源: https://codeday.me/bug/20190901/1779867.html