java web Session會話技術(原理圖解+功能+與Cookie的區別+基本使用)
這是我關于會話技術的第二篇文章,對 Cookie有不了解的兄弟可以點擊下方的Cookie跳轉
Cookie鏈接(點擊跳轉)
會話技術
類似于生活中兩個人聊天,你說一句我說一句,在web中體現為服務器端與客戶端的互動
一次會話中包含多次請求與回應,當服務器請求瀏覽器是會話建立,當一方斷開時會話結束
什么是Session
Session是服務器端會話技術,一次會話的多次請求間共享資料,將資料保存在服務器物件中,HttpSession
怎么獲取Session物件
HttpSession session = req.getSession();
Session物件的相關功能
是不是覺得似曾相識
void removeAttribute(String var1);
void setAttribute(String var1, Object var2);
Object getAttribute(String var1);

Session原理圖解,服務器端如何保證一次會話范圍內多次獲取的Session物件是同一個
由圖可見Session是依賴于Cookie而存在的

大家現在一般都已經知道了Cookie是什么以及作用,那么接下來我來講講二者的區別
Cookie與Session的區別
1、資料存放位置不同:
cookie資料存放在客戶的瀏覽器du上,zhisession資料放在服務器上,
2、安全程度不同:
cookie不是很安全,別人可以分析存放在本地的COOKIE并進行COOKIE欺騙,考慮到安全應當使用session,
3、性能使用程度不同:
session會在一定時間內保存在服務器上,當訪問增多,會比較占用你服務器的性能,考慮到減輕服務器性能方面,應當使用cookie,
4、資料存盤大小不同:
單個cookie保存的資料不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie,而session則存盤與服務端,瀏覽器對其沒有限制,
5、會話機制不同
session會話機制:session會話機制是一種服務器端機制,它使用類似于哈希表(可能還有哈希表)的結構來保存資訊,
cookies會話機制:cookie是服務器存盤在本地計算機上的小塊文本,并隨每個請求發送到同一服務器, Web服務器使用HTTP標頭將cookie發送到客戶端,在客戶端終端,瀏覽器決議cookie并將其保存為本地檔案,該檔案自動將來自同一服務器的任何請求系結到這些cookie,
Session的相關問題
1. 當客戶端關閉后,服務器不關閉,兩次獲取session是否為同一個?
- 默認情況下,不是, * 如果需要相同,則可以創建Cookie,鍵為JSESSIONID,設定最大存活時間,讓cookie持久化保存,
Cookie c = new Cookie("JSESSIONID",session.getId());
c.setMaxAge(60*60); response.addCookie(c);
2. 客戶端不關閉,服務器關閉后,兩次獲取的session是同一個嗎?
- 不是同一個,但是要確保資料不丟失,tomcat自動完成以下作業 *
session的鈍化: * 在服務器正常關閉之前,將session物件系列化到硬碟上 *
session的活化: * 在服務器啟動后,將session檔案轉化為記憶體中的session物件即可,
3. session什么時候被銷毀?
-
服務器關閉
-
session物件呼叫invalidate() ,
-
session默認失效時間 30分鐘 選擇性配置修改 30
可以在Tomcat安裝目錄下的:Tomcat\apache-tomcat-8.5.31\conf\web.xml 進行設定

以上就是Session的一些基礎知識,寫作不易,請各位老鐵點個贊支持一下,覺得有幫助的也可以收藏呀,我會經常更新文章,也可以關注我呀
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/102109.html
標籤:Java
