1. 程式人生 > >關於Session的一些細節

關於Session的一些細節

會話 對象 jsession ets 發送請求 瀏覽器 發送 sessionid cookie

1 session是服務端技術, cookie是客戶端技術

2 默認情況下, 一個瀏覽器獨占一個session對象, 也就是說, 開啟兩個瀏覽器進程, 它們之間使用的session不是同一個session

3 通過一個瀏覽器進程產生出來的瀏覽器窗口, 這些窗口共享的是同一個session, 產生方式可以是點擊出來的(target屬性為_blank), 也可以是拖出來的

4 IE8瀏覽器不管啟動多少個瀏覽器進程, 共享的都是同一個session對象

5 session.getSession()方法通過判斷瀏覽器發送請求是否攜帶JSESSIONID來判斷是否為瀏覽器創建session // 待查看tomcat源碼驗證

6 session的生命周期

  創建 - 調用getSession()方法且JSESSIONID不存在時

  銷毀 - session對象在服務器中駐留30min內沒有被使用, 就會被銷毀, 所以在手工設置JSESSIONID的cookie時, 若將cookie的超時時間設置為超過30min, 就沒有意義了

7 默認情況下, JSESSIONID的cookie有效時間為一個會話, 也就是說, 關閉瀏覽器之後, JSESSIONID的cookie就會別銷毀, 服務器可以通過手工設置JSESSIONID的有效時間, 來防止用戶錯誤操作關閉瀏覽器, 導致再次開啟瀏覽器訪問資源時, 丟失數據

關於Session的一些細節