1. 程式人生 > >【總結】Cookie、session和localStorage、以及sessionStorage之間的區別

【總結】Cookie、session和localStorage、以及sessionStorage之間的區別

cookie是由伺服器傳送到瀏覽器的小量資訊,瀏覽器會將cookie儲存下來,下次請求同一網站時會將cookie傳送給伺服器。

session

session是指一個使用者與互動進行通訊的時間間隔,比如登入到登出的這一過程所需要的時間。具體到web中就是使用者瀏覽某個網站時,從進入網站到關閉瀏覽器所經過的這段時間。注意!!session是一個時間概念,並非客觀存在的東西

當程式需要為某個客戶端的請求建立一個session時,伺服器首先檢查瀏覽器中是否包含session標識(稱為session id),如果已包含則說明為此客戶端建立過session,伺服器按照這個session id把session物件檢索出來使用;如果不包含則為客戶端建立一個session並且生成一個對應的session id,並且在響應中返回給客戶端,客戶端可以將他儲存為cookie格式。

cookie和session的區別

Cookie session物件
儲存位置 客戶端(設定過期時間在硬碟;沒設定在記憶體中) 服務端
時效性 自定義的過期時間(沒設定關閉瀏覽器則消除) session不活動時超出設定時間失效
儲存型別 字串 物件
安全性 明文(可以加密後存放) 放在伺服器記憶體中,安全

localStorage

localStoragesessionStorage都屬於Web Storage。

localStorage以鍵值對的形式儲存在瀏覽器中,永久儲存,永不失效,除非手動刪除。

sessionStorage

sessionStorage 屬性允許你訪問一個 session Storage 物件。它與 localStorage 相似,不同之處在於 localStorage 裡面儲存的資料沒有過期時間設定,而儲存在 sessionStorage 裡面的資料在頁面會話結束時會被清除。頁面會話在瀏覽器開啟期間一直保持,並且重新載入或恢復頁面仍會保持原來的頁面會話。在新標籤或視窗開啟一個頁面會初始化一個新的會話,這點和 session cookies 的執行方式不同。

localStorage 和 sessionStorage 的區別

localStorage sessionStorage
有效期 永久儲存,永不失效,除非手動刪除 關閉會話視窗失效
作用域 同源視窗 僅在同一個標籤頁中

參考資料