到底創建了幾個Session

問:瀏覽器訪問一個站點,產生一個session,接著進行以下操作:
1、在同一個瀏覽器新打開一個tab卡,訪問同一站點,此時幾個session
2、將新打開的tab卡拖拽出來,成為兩個瀏覽器的時候,創建了幾個session
3、換一個瀏覽器,訪問同一個站點,此時幾個session
4、HttpSession、HttpServletRequest.getSession()、HttpServletRequest.getSession(true)、HttpServletRequest.getSession(false)是不是同一個session?

先看產生的第一個session

訪問本地的tomcat,將第一次的sessionId存如session,可以看到四個sessionId相同。

新打開tab,比較兩個sessionId


發現兩個tab卡的sessionId也是相同的

拖拽出來之后

發現兩個sessionId依然相同

換FF再打開

終于和之前的不一樣了。

總結

1.對于同一個瀏覽器,在不清除cookie、緩存、關閉瀏覽器的前提下,如果沒到失效時間,session都是同一個
2.拖拽出來之后,session依然是同一個
3.換一個瀏覽器,session改變
4.HttpSession、HttpServletRequest.getSession()、HttpServletRequest.getSession(true)、HttpServletRequest.getSession(false)獲取到的是同一個session

題外話

session存在于服務端,由于http是無狀態的,服務端無法區別請求由哪個客戶端發送,最終還是依賴cookie,每次發送請求攜帶一個JSESSIONID,即服務端獲取的sessionId,唯一標識一個客戶端請求。

?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容