回覆列表
-
1 # 麼麼茶加糖
-
2 # 糊塗蟲不糊塗
session直譯為會話,代表了使用者與服務端的一系列互動,對應於tomcat的實現就是一個物件,目的是為了識別使用者。
session出現的背景是因為http本身是無狀態的,也就是說每次請求都是相互獨立的,那服務端怎麼知道兩次互動對應的是一個訪問者呢?session就是為了解決這個問題出現的,session的生成在服務端,但必須配合瀏覽器cookie來使用,服務端識別使用者的過程如下:
1.使用者透過瀏覽器訪問伺服器
2.服務端建立session物件,並透過set-cookie將session的ID返回給瀏覽器,並告知瀏覽器存入cookie
3.瀏覽器拿到session的ID後存入cookie
4.瀏覽器後續向服務端請求時會帶上cookie中的sessionID
5.服務端根據sessionID找到之前建立的session物件來識別訪問使用者(使用者資訊往往會存入該session物件)
6.使用者關閉瀏覽器時瀏覽器清除cookie中的sessionID
session 是一種維持客戶端與伺服器端會話的機制。但是與 cookie 把會話資訊儲存在客戶端本地不一樣,session 把會話保留在瀏覽器端。
我們同樣以登陸案例為例子講解 session 的使用過程:
首先使用者在客戶端瀏覽器發起登陸請求
登陸成功後,服務端會把使用者資訊儲存在服務端,並返回一個唯一的 session 標識給客戶端瀏覽器。
客戶端瀏覽器會把這個唯一的 session 標識儲存在起來
以後再次訪問 web 應用時,客戶端瀏覽器會把這個唯一的 session 標識帶上,這樣服務端就能根據這個唯一標識找到使用者資訊。