Java servlet中的会话Id管理

Java servlet中的会话Id管理,java,servlets,session-management,Java,Servlets,Session Management,在使用Jmeter进行性能测试时,我的web应用程序出现了一些问题。我的问题不是关于Jmeter,而是关于一个简单的Servlet会话管理行为 所以我们有一个web应用程序,当您请求登录页面时,它会在响应头中传回一个“会话Id”,用于浏览器发出的后续请求。会话Id与用户名和密码一起传递,如果经过身份验证,则返回一个新的会话Id,并在会话Id继续进行的情况下维护会话。 这是在使用cookies 现在在Jmeter中,我们有了一种基于线程的负载测试方法。当我并行运行线程时,本质上发生的是每个线程请求

在使用Jmeter进行性能测试时,我的web应用程序出现了一些问题。我的问题不是关于Jmeter,而是关于一个简单的Servlet会话管理行为

所以我们有一个web应用程序,当您请求登录页面时,它会在响应头中传回一个“会话Id”,用于浏览器发出的后续请求。会话Id与用户名和密码一起传递,如果经过身份验证,则返回一个新的会话Id,并在会话Id继续进行的情况下维护会话。 这是在使用cookies

现在在Jmeter中,我们有了一种基于线程的负载测试方法。当我并行运行线程时,本质上发生的是每个线程请求一个登录页,并且在某种程度上只有最后一个请求登录页的线程被验证,因为我觉得cookie中带有新会话id的后续登录页会使旧的或其他会话id无效

这是因为每个线程都是不同的会话,并且有自己的cookie管理器。这很奇怪

不过,我的问题是:

  • 登录页面附带会话id有意义吗;我看到,可能在应用程序被访问时就创建了会话,但是,是什么用会话id设置了一个新的cookie呢?这个应用程序已经编写好了,所以我只是想知道

  • 如果每个线程的会话id在jmeter中被重写,这是否意味着我无法正确分配单独的cookie管理器?此外,即使线程是不同的会话,是否有可能丢弃旧的会话id或cookie

  • 服务器如何知道为后续请求使会话id/cookie无效?我确信,这不是请求者IP地址的基础,因为不同的浏览器仍然允许我打开并行多个会话


    如果您有任何关于这个问题的想法、澄清和说明,我们将不胜感激。

    服务器将暂停会话。听起来您在这里写cookies肯定太多了


    您是否尝试过通过在url中包含会话ID(模拟浏览器中禁用的Cookie)来查看它是如何管理的?这是否有效?

    服务器将暂停会话,这听起来肯定像是您在这里过度编写Cookie


    您是否尝试过通过在url中包含会话ID(模拟浏览器中禁用的Cookie)来查看它是如何管理的?这是否有效?

    这是否已经解决?
    我想说的是,在登录页面中有一个会话id是非常不寻常的。会话用于存储服务器端的数据,并将该数据与连接的用户关联。当然,在对用户进行身份验证之前,不应该有任何数据服务器端。

    这个问题已经解决了吗? 我想说的是,在登录页面中有一个会话id是非常不寻常的。会话用于存储服务器端的数据,并将该数据与连接的用户关联。当然,在对用户进行身份验证之前,不应该有任何数据服务器端