淺析sessionStorage、localStorage和cookie以及Session

(一)sessionStorage、localStorage

共同點在於:

1、存儲大小都爲5M左右

2、都有同源策略限制

3、僅在客戶端中保存,不參與和服務器通信

不同點:

1、生命週期:

localStorage是數據是永久性的,除非人爲刪除,否則會一直存在。

sessionStorage:窗口或者標籤頁被關閉,sessionStorage中存儲的數據也會被刪除。

2、作用域

localStorage:同一瀏覽器中,同源文檔可以共享localStorage的數據。

sessionStorage:不僅是統一瀏覽器中,sessionStorage實現數據共享還必須滿足同一標籤頁下或者統一窗口下。舉個例子,比如你在同一個瀏覽器中打開了同一個網址,但是這兩個網頁之間的數據還是不同共享 ,因爲他們不是同源的。

 

注意:localStorage常見的方法   //sessionStorage和他的用法相同

1. 存儲:localStorage.setItem(key,value) key存在,更新value

2.獲取 localStorage.getItem(key)key不存在返回null

3.刪除 localStorage.removeItem(key)

4. 全部清除 localStorage.clear() 

 

(二)Cookie:

1、cookie的主要作用是標記用戶(購物車)和保存登錄信息等功能

2、cookie一般由服務器生成,可以設置過期時間,如果再客戶端生成的話,默認關閉瀏覽器cookie就會自動失效。

3、cookie每次都會被攜帶在HTTP頭中,保存過多會造成性能問題。

4、cookie的原生API不友好,不如localStorage的原生接口好用。

注意:本質上來講,cookie也是一種無狀態的http,工作機制如下:

 

(三)Session

1、Session和cookie都在無狀態的http協議,Session是服務器記錄用戶狀態時用於標識具體用戶的機制。在服務器端保存,用來跟蹤用戶狀態的數據結構。這個數據可以保存在集羣、數據庫、文件中。

2、生命週期:瀏覽器關閉後就會失效。因爲瀏覽器關閉後,這個Session的id就變了,失效。

3、利用cookie可以記錄SessionID。

4、Session的安全性高於cookie。

5、訪問過多時,Session會使服務器的性能降低。

6、Session運行依賴Session ID,但是Session ID保存在cookie,如果瀏覽器禁用了cookie,Session 就會失效。

根據:https://juejin.im/entry/5ac4d661f265da23a049c92a 整理,侵權立即刪除。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章