cookie,session,sessionStorage,localStotage的區別

Jasonccj發表於2019-02-20

1.cookie

儲存位置: 客戶端

使用方式:

如果不設定過期時間,cookie儲存在瀏覽器記憶體中,生命週期隨瀏覽器的關閉而結束.簡稱會話cookie.
如果設定過期時間,cookie則儲存在硬碟中,關閉瀏覽器依然存在,直到過期才消失.

2.session

儲存位置: 伺服器端

使用方式: session目前主流都配合cokie使用


登入案例(cookie和session結合)

使用者客戶端登入系統

cookie,session,sessionStorage,localStotage的區別
登入成功後,由圖上的response的headers我們可以看到伺服器端會發給客戶端一個帶有JSESSIONID的唯一使用者標識的特殊資訊,這個就是cookie,由伺服器端發回並設定,此時的cookie沒有設定過期時間,故生命週期是隨瀏覽器的關閉而結束 cookie,session,sessionStorage,localStotage的區別

由上圖可知,每次發請求到後臺時,在request的header裡都會帶著cookie到後臺,以cookie裡面的JSESSIONID在伺服器中區分是哪個使用者進行的操作.
因為此時儲存的Cookie是會話Cookie,只要整個瀏覽器不關閉,cookie一直有效.
除非換瀏覽器開啟,此時沒有會話cookie,跳轉到登入介面,伺服器端會重新生成新的JSESSIONID返回給客戶端.


3.localStorage(本地儲存)

儲存位置: 客戶端

生命週期:

localStorage的生命週期是永久的,關閉頁面或瀏覽器之後localStorage中的資料也不會消失。localStorage除非主動刪除資料,否則資料永遠不會消失。

4.sessionStorage(會話儲存)

儲存位置: 客戶端

生命週期:

sessionStorage的生命週期是在僅在當前會話下有效。sessionStorage引入了一個“瀏覽器視窗”的概念,sessionStorage是在同源的視窗中始終存在的資料。只要這個瀏覽器視窗沒有關閉,即使重新整理頁面或者進入同源另一個頁面,資料依然存在。但是sessionStorage在關閉了瀏覽器視窗後就會被銷燬。同時獨立的開啟同一個視窗同一個頁面,sessionStorage也是不一樣的。

最後

  • 喜歡的記得點個star.鼓勵一下,謝謝!
  • qq群號 424072183

相關文章