嗯,昨天面試問到了cookie和H5新增的兩個存儲的區別,我只是簡單從大小和自動失效來講了一下,由於經常使用的是cookie,習慣了手寫cookie的麻溜,忘了之前h5讀的文檔了,特意從爲知筆記裏面扒出來,再記一下。以下:javascript
瀏覽器本地存儲html
- 在較高版本的瀏覽器中,js提供了sessionStorage和globalStorage。在HTML5中提供了localStorage來取代globalStorage
- html5中的Web Storage包括了兩種存儲方式:sessionStorage和localStorage
- sessionStorage用於本地存儲一個會話(session)中的數據,這些數據只有在同一個會話中的頁面才能訪問而且當會話結束後數據也隨之銷燬。所以sessionStorage不是一種持久化的本地存儲,僅僅是會話級別的存儲
- 而localStorage用於持久化的本地存儲,除非主動刪除數據,不然數據是永遠不會過時的
web storage和cookie的區別前端
- Web Storage的概念和cookie類似,區別是它是爲了更大容量存儲設計的。Cookie的大小是受限的,而且每次你請求一個新的頁面的時候Cookie都會被髮送過去,這樣無形中浪費了帶寬,另外cookie還須要指定做用域,不能夠跨域調用
- 除此以外,WebStorage擁有setItem,getItem,removeItem,clear等方法,不像cookie須要前端開發者本身封裝setCookie,getCookie
- 可是cookie也是不能夠或缺的:cookie的做用是與服務器進行交互,做爲HTTP規範的一部分而存在 ,而Web Storage僅僅是爲了在本地「存儲」數據而生
- 瀏覽器的支持除了IE7及如下不支持外,其餘標準瀏覽器都徹底支持(ie及FF需在web服務器裏運行),值得一提的是IE老是辦好事,例如IE七、IE6中的userData其實就是javascript本地存儲的解決方案。經過簡單的代碼封裝能夠統一到全部的瀏覽器都支持web storage
- localStorage和sessionStorage都具備相同的操做方法,例如setItem、getItem和removeItem等
cookie 和session 的區別:html5
-
一、cookie數據存放在客戶的瀏覽器上,session數據放在服務器上。java
-
二、cookie不是很安全,別人能夠分析存放在本地的COOKIE並進行COOKIE欺騙web
-
三、session會在必定時間內保存在服務器上。當訪問增多,會比較佔用你服務器的性能面試
-
四、單個cookie保存的數據不能超過4K,不少瀏覽器都限制一個站點最多保存20個cookie。跨域
-
五、因此我的建議:瀏覽器
-
將登錄信息等重要信息存放爲SESSION安全
-
其餘信息若是須要保留,能夠放在COOKIE中
描述 cookies、sessionStorage 和 localStorage 的區別?
-
與服務器交互:
- cookie 是網站爲了標示用戶身份而儲存在用戶本地終端上的數據(一般通過加密)
- cookie 始終會在同源 http 請求頭中攜帶(即便不須要),在瀏覽器和服務器間來回傳遞
- sessionStorage 和 localStorage 不會自動把數據發給服務器,僅在本地保存
-
存儲大小:
- cookie 數據根據不一樣瀏覽器限制,大小通常不能超過 4k
- sessionStorage 和 localStorage 雖然也有存儲大小的限制,但比cookie大得多,能夠達到5M或更大
- 有期時間:
- localStorage 存儲持久數據,瀏覽器關閉後數據不丟失除非主動刪除數據
- sessionStorage 數據在當前瀏覽器窗口關閉後自動刪除
- cookie 設置的cookie過時時間以前一直有效,與瀏覽器是否關閉無關