簡體   English   中英

Servlet中的會話ID管理

[英]Session Id Management in Servlets

使用Jmeter進行性能測試時,我的Web應用程序出現了一些問題。 我的問題不是圍繞Jmeter,而是關於一個簡單的Servlet會話管理行為。

因此,我們有一個Web應用程序,在該應用程序中,當您請求登錄頁面時,它將在響應標頭中傳回“會話ID”,並用於瀏覽器的后續請求。 會話ID與用戶名和密碼一起傳遞,如果通過身份驗證,則返回新的會話ID,並以該會話ID繼續進行會話維護。 這是使用cookie。

現在,在Jmeter中,我們有了基於線程的負載測試方法。 當我並行運行線程時,實際上發生的是每個線程都請求一個登錄頁面,並且以某種方式僅對最后一個請求登錄頁面的線程進行了身份驗證,因為我覺得在cookie中帶有新會話ID的后續登錄頁面會使舊的或無效的。其他會話ID。

盡管每個線程都是一個不同的會話,並擁有自己的cookie管理器,但事實並非如此。 很奇怪。

但是我的問題是:

  1. 會話ID與登錄頁面一起顯示是否有意義; 我看到可能是在訪問應用程序后立即創建了會話,但這是什么設置了具有會話ID的新cookie? 該應用程序已被編寫,所以我想知道。

  2. 如果在jmeter中覆蓋了每個線程的會話ID,這是否意味着我無法正確分配單獨的Cookie管理器? 另外,即使線程是不同的會話,也有可能會丟棄舊的會話ID或Cookie嗎?

服務器如何知道使后續請求的會話ID / cookie無效? 我敢肯定,不是請求者的IP地址的依據,因為不同的瀏覽器仍然會讓我打開並行的多個會話。

對此問題的任何想法,澄清和啟發將不勝感激。

這有沒有解決? 我要說的是,在登錄頁面中具有會話ID是非常不尋常的。 會話用於存儲數據服務器端並將該數據關聯到連接的用戶。 當然,在對用戶進行身份驗證之前,不應有任何數據服務器端。

服務器只會使會話超時,這絕對聽起來像是您在這里編寫cookie一樣。

您是否嘗試過通過在URL中包含會話ID來查看其管理方式(模擬在瀏覽器中被禁用的cookie)?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM