一、cookie
cookie算是比較早的技術,最初是為了記錄http的狀態,提高訪問速度。cookie是服務器"種植"在客戶端的key-value形式文本文件。但同時客戶端也能操作cookie。
特點:
- 大小:cookie的大小限制在4k。每個域名下cookie的個數現在在20個。
- 在客戶端請求服務器端和服務器響應時,cookie始終被攜帶在http請求中,即使不需要(造成流量浪費)。這也是限制cookie大小的原因。
- 客戶端可以通過document.cookie操作cookie,并不安全。
- cookie可以設置過期時間、路徑、域和
httpOnly
等字段。如果設置了過期時間,cookie會保存在硬盤里,知道到了設定的過期時間才會失效。若未設置過期時間,在瀏覽器窗口關閉時,cookie就失效了。路徑和域兩個字段限制了cookie的作用范圍。httpOnly
設置為true,則js不能通過document.cookie
操作cookie。
二、localStorage
它也是采用key-value的形式存儲數據,但是它與cookie有很大的區別
特點:
- 對比著來,localStorage能保存更大的數據,標準瀏覽器是5Mb。
- localStorage保存在客戶端,不隨著請求發送給服務器,避免了流量的浪費。
- 客戶端可以通過:setItem、getItem方法訪問localStorage。
- 并且,localStorage沒有過期時間,如果不手動清除,數據就永遠不會過期,一直保存在瀏覽器當中。
- 存儲的信息在同一域中是共享的。