应用程序服务器如何使用有状态 bean 识别用户
How Application Servers recognize users with Stateful beans
我对有状态 bean 的工作原理、bean 中的钝化和激活状态了解一些,但我不确定它到底是如何工作的..
我向 HttpServlet 实例发送了一个简单的 HTTP 请求。我的简单应用程序中没有身份验证或授权服务。 Appliation Server 启动一个线程来处理我的请求。然后为这个请求创建了一个有状态的 bean,它做了一些事情,这个用于处理请求的 thead 应该被杀死。
一分钟后,我再次发送请求(无缓存模式),并委托同一个有状态 bean 来处理我的请求。我想知道应用程序服务器如何识别我?
可能是浏览器的问题? HTTP 协议有一个 "connection keep-alive" 模式。 Application Server 识别我是因为浏览器打开了一个多连接 TCP 处理程序并且 Application Server 与浏览器有一个会话?
请解释一下当没有身份验证或授权服务并且我们使用无状态的 HttpServlet 时 AS 如何识别用户。
Java Servlet 容器为每个用户维护一个 "session",即使不涉及身份验证服务。一般来说,HTTP 请求通过 cookie 或通过 URL 重写与正确的会话相关联——后者通常意味着客户端回显给服务器的查询参数或 REST 风格的请求 URI 提供会话标识符.在安全(即 HTTPS)服务中,请求也可以通过 SSL 上下文与会话相关联。
您的有状态 bean 很可能与用户会话相关联,而不是与用户自己的标识符相关联。除其他事项外,请注意,这意味着即使存在用户身份验证服务,同一用户也可能同时从同一台客户端计算机或不同客户端计算机拥有多个不同的活动会话。
在浏览器中,您可以看到 JSESSIONID 作为 cookie,用于跟踪用户会话。
有关详细信息,google JSESSIONID.
我对有状态 bean 的工作原理、bean 中的钝化和激活状态了解一些,但我不确定它到底是如何工作的..
我向 HttpServlet 实例发送了一个简单的 HTTP 请求。我的简单应用程序中没有身份验证或授权服务。 Appliation Server 启动一个线程来处理我的请求。然后为这个请求创建了一个有状态的 bean,它做了一些事情,这个用于处理请求的 thead 应该被杀死。
一分钟后,我再次发送请求(无缓存模式),并委托同一个有状态 bean 来处理我的请求。我想知道应用程序服务器如何识别我?
可能是浏览器的问题? HTTP 协议有一个 "connection keep-alive" 模式。 Application Server 识别我是因为浏览器打开了一个多连接 TCP 处理程序并且 Application Server 与浏览器有一个会话?
请解释一下当没有身份验证或授权服务并且我们使用无状态的 HttpServlet 时 AS 如何识别用户。
Java Servlet 容器为每个用户维护一个 "session",即使不涉及身份验证服务。一般来说,HTTP 请求通过 cookie 或通过 URL 重写与正确的会话相关联——后者通常意味着客户端回显给服务器的查询参数或 REST 风格的请求 URI 提供会话标识符.在安全(即 HTTPS)服务中,请求也可以通过 SSL 上下文与会话相关联。
您的有状态 bean 很可能与用户会话相关联,而不是与用户自己的标识符相关联。除其他事项外,请注意,这意味着即使存在用户身份验证服务,同一用户也可能同时从同一台客户端计算机或不同客户端计算机拥有多个不同的活动会话。
在浏览器中,您可以看到 JSESSIONID 作为 cookie,用于跟踪用户会话。 有关详细信息,google JSESSIONID.