java web Session會話技術(原理圖解+功能+與Cookie的區別+基本使用)


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什么時候被銷毀?

  1. 服務器關閉

  2. session對象調用invalidate() 。

  3. session默認失效時間 30分鍾 選擇性配置修改 30
    可以在Tomcat安裝目錄下的:Tomcat\apache-tomcat-8.5.31\conf\web.xml 進行設置
    在這里插入圖片描述

以上就是Session的一些基礎知識,寫作不易,請各位老鐵點個贊支持一下,覺得有幫助的也可以收藏呀,我會經常更新文章,也可以關注我呀


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM