gpt4 book ai didi

Httpsession 适用于每个用户还是每个浏览器?

转载 作者:可可西里 更新时间:2023-11-01 16:28:59 26 4
gpt4 key购买 nike

我正在使用 tomcat 作为我的网络服务器。我在 IE 中点击了一些 url,并为该请求在 HttpSession 中放置了一些对象。

现在我的问题:

  1. 如果我关闭浏览器并在新浏览器中点击 url,我之前放入 session 中的对象是否可用?

  2. 如果我不关闭浏览器并在新选项卡/窗口中点击 url,我之前放入 session 中的对象是否可用?

The HttpSession javadoc说如下:

Provides a way to identify a user across more than one page request or visit to a Web site and to store information about that user.

根据我的理解,术语“用户”是指“浏览器”。一旦我们打开一个新的浏览器,Tomcat/任何网络服务器就会将其视为一个新用户。它是否正确? Tomcat 是使用 cookie 还是重写 URL 来实现的?

javadoc 还说:

Session information is scoped only to the current web application (ServletContext).

如果是这种情况,我们在 session 中设置的任何对象都应该对所有用户请求可见,即使是从不同的机器触发,因为每个网络服务器都有 servlet 上下文。但如果应用程序范围不在 session 范围内,情况就是如此。我不明白它想在这里说什么。

最佳答案

session 确实绑定(bind)到单个浏览器,并且在此浏览器中打开的所有框架/选项卡共享同一个 session 。如果退出浏览器, session 就会丢失。

session 跟踪是使用 cookie 实现的,但如果浏览器不接受 cookie,则可以回退到 URL 重写。然而,这要求开发人员谨慎行事,并始终使用适当的方法或标记来对应用程序的每个链接和操作的 URL 进行编码。

最后一部分的意思是,如果您在同一个 servlet 容器中部署两个不同的 web 应用程序,并且同一用户使用相同的浏览器使用这两个应用程序,他将有两个不同的 session :每个 web 应用程序一个。第一个 webapp 的 session 与第二个 webapp 的 session 完全隔离。

关于Httpsession 适用于每个用户还是每个浏览器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8435457/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com