1. 程式人生 > 實用技巧 >java web Session會話技術(原理圖解+功能+與Cookie的區別+基本使用)

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的一些基礎知識,寫作不易,請各位老鐵點個贊支援一下,覺得有幫助的也可以收藏呀,我會經常更新文章,也可以關注我呀