Cookie, LocalStorage 與 SessionStorage異同

不一樣

  1. cookie由服務端生成,用於標識用戶身份;而兩個storage用於瀏覽器端緩存數據html

  2. 通常狀況下瀏覽器端不會修改 cookie,但會頻繁操做兩個storageweb

  3. cookie有path概念,子路徑能夠訪問父路徑 cookie,父路徑不能訪問子路徑 cookie跨域

  4. 有效期: cookie在設置的有效期內有效,默認爲瀏覽器關閉;sessionStorage在窗口關閉前有效,localStorage長期有效,直到用戶刪除瀏覽器

  5. 瀏覽器不能保存超過300個 cookie,單個服務器不能超過20個,每一個 cookie不能超過4k。web storage大小支持能達到5M緩存

  6. 共享:sessionStorage不能共享,localStorage在同源文檔之間共享, cookie在同源且符合path規則的文檔之間共享安全

  7. 若是保存了 cookie的話,http請求中必定會帶上;而兩個storage能夠由腳本選擇性的提交服務器

  8. 安全性方面, cookie中最好不要放置任何明文的東西。兩個storage的數據提交後在服務端必定要校驗cookie

相同

  1. 三者都是鍵值對的集合session

  2. 都會在瀏覽器端保存,有大小限制,同源限制post

擴展閱讀

HTML5本地存儲——IndexedDB(一:基本使用)

cookie隔離
即優化方案中提到的靜態資源放在不帶cookie的域名下的解決方案
若是靜態文件都放在主域名下,那靜態文件請求的時候都帶有的cookie的數據提交給server的,很是浪費流量, 因此不如隔離開。 由於cookie有域的限制,所以不能跨域提交請求,故使用非主要域名的時候,請求頭中就不會帶有cookie數據, 這樣能夠下降請求頭的大小,下降請求時間,從而達到下降總體請求延時的目的。 同時這種方式不會將cookie傳入Web Server,也減小了Web Servercookie的處理分析環節, 提升了Web Server的http請求的解析速度。

參考資料

詳說 Cookie, LocalStorage 與 SessionStorage
爲何不少網站的靜態資源會使用獨立的域名?

相關文章
相關標籤/搜索