HTTP会话的范围是什么?

20

HTTP会话的范围是什么?

我一直在谷歌搜索,但似乎无法得到明确的答案- 一个会话应该在“用户关闭其浏览器”时被清除,但这对我来说不太清楚- 这是否意味着关闭浏览器窗口还是退出浏览器应用程序?拥有同时打开两个浏览器窗口的用户是否维护两个不同的会话?并且浏览器选项卡总是属于相同的会话吗?

3个回答

15

这取决于您在应用程序中如何跟踪会话。

默认情况下,它们由HttpOnly cookies跟踪。这意味着如果用户关闭当前选项卡,他不会失去会话。但是,如果他关闭浏览器,他将丢失会话。

如果您使用无cookie模式来跟踪会话(cookieless="true"),ASP.NET将向所有URL添加自定义令牌,这意味着用户可以在同一浏览器实例的2个不同选项卡上使用2个不同的会话。


Darin- 那么你会说对于 HttpOnly cookies,会话范围限定在每个浏览器 窗口 的生命周期内吗? - Yarin
@Yarin,是的,这正是我所说的。如果您在一个浏览器选项卡上进行更改(例如退出登录),如果您有活动会话,则所有其他选项卡上都会自动退出登录。 - Darin Dimitrov

6
你所有问题的答案是“这取决于情况”。
多个浏览器窗口可以是多个会话,也可以是同一个会话。这取决于浏览器的行为以及您如何打开这些窗口。
在IE中,有一个“新建窗口”和“新建会话”的菜单选项。选择“新建窗口”会保持相同的会话,“新建会话”选项将以不同的会话打开新窗口。在启动浏览器时按住Shift键也可以获取新的会话。
如果您必须确保所有会话都已结束,请关闭所有浏览器窗口。

BNL- 你说的“你是怎么打开窗口的”是什么意思?能详细说明一下吗? - Yarin

4

会话Cookie通常在整个浏览器退出时被删除。由于多个选项卡/窗口共享同一组Cookie,因此这些选项卡/窗口将使用相同的会话。

然而,应用程序也可以通过URL传递会话标识符。在这种情况下,只要您不通过具有有效会话ID的链接打开它,每个选项卡/窗口都将拥有自己的会话。


ThiefMaster - "when the whole browser exits" = 退出浏览器应用程序? - Yarin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接