cookie和session的作用

session

session:是在服務(wù)器端狀態(tài)保持機制,提供了一種把信息保存在服務(wù)器內(nèi)存中的一種方法,它能存儲任何數(shù)據(jù)類型,包括用戶自定義的數(shù)據(jù)類型。

每個客戶端的session是獨立存儲的,每個session對象用于存儲對應(yīng)用戶的信息,用戶不能訪問和修改其他用戶的session。在服務(wù)器端有一個session池,用來存儲每個用戶的session信息。為了區(qū)別,給每個session對象增加一個sessionID,而且這個sessionID是唯一的,然后返回給瀏覽器。用戶下次訪問時,帶著這個sessionID,從session池中找到對應(yīng)的session對象。每個用戶都有自己的一個session對象,不能對其他用戶的session對象進行操作。

sessionID是以cookie的形式返回給瀏覽器端,瀏覽器將接收到的存儲sessionID的cookie保存在內(nèi)存中(瀏覽器端)

session不能跨進程使用(不能跨瀏覽器使用)

當調(diào)用session的abandon方法時,強制性關(guān)閉,如注銷

session.Abandon();//銷毀服務(wù)端的session對象

session.Clear();//清除session中鍵值對

cookie

cookie:是一個在客戶端狀態(tài)保持的文本文件,是一種能夠讓網(wǎng)站服務(wù)端把少量數(shù)據(jù)保存在客戶端(瀏覽器)的內(nèi)存或者硬盤,并且能夠讀取出來的一種技術(shù)。

cookie是由服務(wù)端生成,發(fā)送給user-Agent(一般是瀏覽器,以下以瀏覽器來說),瀏覽器會將cookie中的key-value鍵值對寫入到某個目錄下的文本文件內(nèi)。下次請求同一網(wǎng)站時就發(fā)送該cookie給服務(wù)器(前提是瀏覽器設(shè)置為啟用cookie)。cookie的鍵和值可以由服務(wù)端開發(fā)自己定義。這樣服務(wù)器就知道訪問用戶是否是合法用戶,以及用戶是否已經(jīng)登錄過。

服務(wù)器可以利用cookie包含信息的任意性來篩選并維護這些信息。

cookie最典型的應(yīng)用是判斷用戶是否登錄網(wǎng)站,用戶可能得到提示:是否記住用戶名密碼以便在下次訪問該網(wǎng)址時不用輸入用戶名密碼而可以直接登錄。這就是cookie的功勞。另一個重要的應(yīng)用場景就是購物車之類的場景:用戶可能在一段時間內(nèi)在同一家網(wǎng)站的不同頁面選擇不同商品,這些信息都會被寫入cookies,以便在最后付款時提取信息。

瀏覽器會自動將屬于該網(wǎng)站的cookie文件發(fā)送給該網(wǎng)站服務(wù)端。通過域名來區(qū)分cookie文件。域名和cookie文件有一一映射的關(guān)系。

cookie的缺點:不能存儲過多的信息。


cookie和session的生存周期(以20分鐘為例)的區(qū)別:

(1)cookie的生命周期是累計的,從創(chuàng)建時,就開始計時,20分鐘后,cookie生命周期結(jié)束,

(2)session的生命周期是間隔的,從創(chuàng)建時,開始計時如在20分鐘,沒有訪問session,那么session生命周期被銷毀

但是,如果在20分鐘內(nèi)(如在第19分鐘時)訪問過session,那么,將重新計算session的生命周期

(3)關(guān)機會造成session生命周期的結(jié)束,但是對cookie沒有影響

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容