目錄
一:Cookie(Secure和HttpOnly屬性)
基於安全的考慮,需要給cookie加上Secure和HttpOnly屬性,HttpOnly比較好理解,設置HttpOnly=true的cookie不能被js獲取到,無法用document.cookie打出cookie的內容。
Secure屬性是說如果一個cookie被設置了Secure=true,那麼這個cookie只能用https協議發送給服務器,用http協議是不發送的。換句話說,cookie是在https的情況下創建的,而且他的Secure=true,那麼之後你一直用https訪問其他的頁面(比如登錄之後點擊其他子頁面),cookie會被髮送到服務器,你無需重新登錄就可以跳轉到其他頁面。但是如果這是你把url改成http協議訪問其他頁面,你就需要重新登錄了,因爲這個cookie不能在http協議中發送。
下圖所示:Secure和HttpOnly 勾選後,代表 =true
二:JSESSIONID是什麼
老實說一開始看到這個有點懵,寫Java這麼久沒看過這東西。
首先,JSESSIONID是一個Cookie,Servlet容器(tomcat,jetty)用來記錄用戶session。
什麼時候種下JSESSIONID
創建會話時,即調用request.getSession()的時候,關於getSession就不說了。補充幾點是,訪問html是不會創建session的, JSP頁面默認是會創建session的,可以在JSP頁面裏面關掉自動創建session
三: JSESSIONID 刷新
在註銷登錄,登錄超時添加:
//HttpServletRequest request
HttpSession session = request.getSession();
session.invalidate();
session.invalidate()是將session設置爲失效,一般在退出時使用,但要注意的是:session失效的同時 瀏覽器會立即創建一個新的session ,JSESSIONID 只是tomcat中對session id的叫法,在其它容器裏面,不一定就是叫JSESSIONID 了
session.invalidate()執行此代碼時 JSESSIONID 會失效,瀏覽器會立即創建一個新的JSESSIONID ,JSESSIONID 刷新
參考:JSESSIONID:https://www.jianshu.com/p/f2e5db637ed4
Cookie:https://www.cnblogs.com/diligenceday/p/10885868.html
ps :有什麼不清楚的可以評論哦。
才疏學淺 ,請多指教 !