問:瀏覽器訪問一個站點,產(chǎn)生一個session鞍历,接著進行以下操作:
1、在同一個瀏覽器新打開一個tab卡山析,訪問同一站點堰燎,此時幾個session
2、將新打開的tab卡拖拽出來笋轨,成為兩個瀏覽器的時候秆剪,創(chuàng)建了幾個session
3赊淑、換一個瀏覽器,訪問同一個站點仅讽,此時幾個session
4陶缺、HttpSession、HttpServletRequest.getSession()洁灵、HttpServletRequest.getSession(true)饱岸、HttpServletRequest.getSession(false)是不是同一個session?
先看產(chǎn)生的第一個session
訪問本地的tomcat徽千,將第一次的sessionId存如session苫费,可以看到四個sessionId相同。
新打開tab双抽,比較兩個sessionId
發(fā)現(xiàn)兩個tab卡的sessionId也是相同的
拖拽出來之后
發(fā)現(xiàn)兩個sessionId依然相同
換FF再打開
終于和之前的不一樣了百框。
總結(jié)
1.對于同一個瀏覽器,在不清除cookie牍汹、緩存铐维、關(guān)閉瀏覽器的前提下,如果沒到失效時間慎菲,session都是同一個
2.拖拽出來之后嫁蛇,session依然是同一個
3.換一個瀏覽器,session改變
4.HttpSession露该、HttpServletRequest.getSession()睬棚、HttpServletRequest.getSession(true)、HttpServletRequest.getSession(false)獲取到的是同一個session
題外話
session存在于服務(wù)端有决,由于http是無狀態(tài)的闸拿,服務(wù)端無法區(qū)別請求由哪個客戶端發(fā)送,最終還是依賴cookie书幕,每次發(fā)送請求攜帶一個JSESSIONID新荤,即服務(wù)端獲取的sessionId,唯一標(biāo)識一個客戶端請求台汇。
?