維護瀏覽器和伺服器端會話狀態的一種方式,一般用於儲存使用者身份資訊。
伺服器端生成cookie推送到瀏覽器端,瀏覽器負責儲存和維護資料。
特點
網域名稱下的所用請求都會帶上cookie
每條cookie限制在4kb左右
cookie在過期時間之前一直有效,若未設定過期時間,關閉瀏覽器視窗即失效
服務端通過響應頭中的set-cookie向瀏覽器寫入cookie,瀏覽器端可以通過document.cookie
讀寫cookie(若一條cookie在響應頭中設定了httponly標識,瀏覽器將無法獲取和操作該條cookie)
webstorage —— 瀏覽器本地儲存方案,包括sessionstorage和localstorage
兩者的差異在儲存週期上,使用方法上無差異
限制在頁面內的單次本地儲存
特點
僅在當前頁面有效
關閉頁面或者瀏覽器視窗後失效
限制在同源內的持久本地儲存
特點
遵循同源策略
除非手動清除,否則一直儲存在本地
儲存大小
一般儲存空間為5mb左右,桌面端chrome40+,firefox34+,ie9+預設調整至10mb
(本地測試結果與此相矛盾),部分瀏覽器可由使用者手動調整上限。
stackoverflow - 關於計算localstorage上限
錯誤處理
同步讀寫,通過try...catch捕獲錯誤資訊。如下捕獲超限錯誤
try catch(domexception)
}
儲存格式
資料以字串格式儲存,物件寫入時需使用json.stringify轉換為字串,再使用json.parse轉換為物件。
大量資料的結構化儲存
特點
遵循同源策略
除非手動清除,否則一直儲存在本地
儲存空間大,一般為250mb
主鍵對應值儲存,比如以id為主鍵儲存對應資料
支援各類儲存格式,甚至是二進位制資料(blob)
非同步儲存,禁止在頁面reload時做批量儲存
非官方規範,目前已棄用
利用應用快取,保證離線情況下正常使用,減少網路請求,加快訪問速度
大部分瀏覽器對快取資料容量的限制時5mb
localforage - 封裝indexeddb, websql, localstorage,提供統一api
瀏覽器快取整理
對瀏覽器快取這一塊一直是亂哄哄的狀態,今天終於有時間整理一下,寫下這篇筆記,以供日後查閱。良好的快取策略可以降低資源的重複載入提高網頁的整體載入速度 通常瀏覽器快取策略分為兩種 強快取和協商快取 瀏覽器在載入資源時,根據請求頭的expires和cache control判斷是否命中強快取,是則直接從...
詳解瀏覽器儲存
隨著對前端的了解越來越深入,了解到了很多種瀏覽器的儲存方案,如 cookie localstorage等,哪這些儲存方案有何異同,分別的適用場景又是什麼呢。cookie 被創造出來的本意並不是本地儲存,而是為了辨別使用者身份。眾所周知,http 協議是無狀態的,也就是說你每一次傳送給伺服器的請求對於...
瀏覽器的儲存
cookie,localstorage,sessionstorage,indexdb 我們先來通過 學習下這幾種儲存方式的區別 特性cookie localstorage sessionstorage indexdb 資料生命週期 一般由伺服器生成,可以設定過期時間 除非被清理,否則一直存在 頁面關...