springboot之session、cookie
1- ?獲取session的方案
session: ?https://blog.csdn.net/yiifaa/article/details/77542208
2- ?session什么時候創(chuàng)建?
一個常見的誤解是以為session在有客戶端訪問時就被創(chuàng)建,然而事實是直到某server端程序調(diào)用HttpServletRequest.getSession(true)這樣的語句時才被創(chuàng)建。
注意如果JSP沒有顯示的使用 <% @page session="false"%> 關(guān)閉session,
則JSP文件在編譯成Servlet時將會自動加上這樣一條語句 HttpSession session = HttpServletRequest.getSession(true);這也是JSP中隱含的session對象的來歷。
由于session會消耗內(nèi)存資源,因此,如果不打算使用session,應(yīng)該在所有的JSP中關(guān)閉它。
?
3- ?session何時被刪除?
session在下列情況下被刪除:
A.程序調(diào)用HttpSession.invalidate()
B.距離上一次收到客戶端發(fā)送的session id時間間隔超過了session的最大有效時間
C.服務(wù)器進程被停止
再次注意關(guān)閉瀏覽器只會使存儲在客戶端瀏覽器內(nèi)存中的session cookie失效,不會使服務(wù)器端的session對象失效,除非此時Server端剛好session失效時間到了。
?
4-?getSession()/getSession(true)、getSession(false)的區(qū)別,isNew()
getSession()/getSession(true):當(dāng)session存在時返回該session,否則新建一個session并返回該對象
getSession(false):當(dāng)session存在時返回該session,否則不會新建session,返回null。
public boolean isNew()方法如果會話尚未和客戶程序(瀏覽器)發(fā)生任何聯(lián)系,即服務(wù)器端程序還沒有返回客戶端時,
則這個方法返回true,這一般是因為會話是新建的,不是由輸入的客戶請求所引起的。但如果isNew返回false,
只不過是說明他之前曾經(jīng)訪問Web應(yīng)用,并不代表他們曾訪問過我們的servlet或JSP頁面。
?
5 cookie:?https://blog.csdn.net/u011145904/article/details/77745777
?
6-?然后我再聊下session_id吧,它是保存在cookie中,首先session是一個只要活動就不會過期的東西,只要開啟cookie,每一次會話,session_id都不會改變,我們可以根據(jù)session_id來判斷用戶是否是正常登陸,防止用戶偽造session。然后我們也要防止session被劫持,我們可以對session_id進行再一次的加密,防止暴力破解,還有可以設(shè)置HttpOnly。通過設(shè)置Cookie的HttpOnly為true,可以防止客戶端腳本訪問這個Cookie,從而有效的防止XSS攻擊。
轉(zhuǎn)載于:https://www.cnblogs.com/domi22/p/9419126.html
總結(jié)
以上是生活随笔為你收集整理的springboot之session、cookie的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前后端如何通信
- 下一篇: 中国空间站将再添新房子 “梦天”实验舱及