前端本地存儲(Cookie、LocalStorage虚茶、SessionStorage)

前言

前端存儲的方式有很多種戈鲁,包括了離線緩存(application cache)仇参,Web SQL,IndexedDB以及本地存儲的Cookie婆殿、LocalStorage诈乒、SessionStorage,本文主要對Cookie婆芦、LocalStorage怕磨、SessionStorage這三者的作用、區(qū)別以及應用場景進行描述消约。

通常我們會在瀏覽器的開發(fā)者模式中的Application的Storage中找到

COOKIE

含義

Cookie又叫會話跟蹤技術肠鲫,事實上就是以KeyValue的形式存儲在瀏覽器端的數(shù)據(jù)或粮。

工作原理

1.在Request的時候导饲,瀏覽器將Cookie信息放在HTTP-Request Headers中。
2.在Response的時候氯材,瀏覽器保存HTTP-Response Headers信息中的Cookie信息渣锦。
3.Cookie的核心信息包含三個部分:Name、Value氢哮、過期時間袋毙。
4.Cookie的保存是覆蓋式的,所以Cookie的添加命浴、更新娄猫、刪除對于瀏覽器來說都是執(zhí)行設置(set)的動作。
5.存儲屬性除了Name生闲、Value媳溺、過期時間,還有Domain碍讯、Path悬蔽,當前域可以操作當前域子域、父域名的Cookie捉兴,當前Path蝎困,可以操作當前Path以及當前Path子、父Path下的Cookie

為什么需要強調它的工作原理呢倍啥?事實上cookie的作用禾乘、缺點甚至于缺點的改善都是圍繞工作原理進行的。

作用
  • 會話狀態(tài)管理(如用戶登錄狀態(tài)虽缕、購物車始藕、游戲分數(shù)和其它需要記錄的信息)
  • 個性化設置(如用戶自定義設置、主題等)
傳輸特點
  • 每次Request客戶端符合domian以及path要求的Cookie都會通過Request Headers傳輸?shù)椒掌鞫?/li>
  • 傳輸?shù)腃ookie大小會受到瀏覽器以及Web服務器的限制
安全特點
  • Cookie中的信息很容易被查看,建議加密后存儲
  • Cookie容易被XSS攻擊利用伍派,可以設置HttpOnly=true江耀,不允許客戶端訪問
應用
  • 設置:document.cookie = 'key=val;path:/;expires='+d (d為時間)
  • 獲取:document.cookie
  • 刪除cookie: 將過期時間設置為負值
缺點
  • 存儲大小最多4KB
  • 存儲數(shù)量根據(jù)瀏覽器或瀏覽器版本的不同而不同诉植,并且每個域最多20條
  • 不安全(請求頭常帶存儲信息)
  • 存儲數(shù)據(jù)類型限制祥国,cookie只能存儲字符串
提高安全性措施
  • 對保存到cookie里面的敏感信息必須加密
  • 設置HttpOnly為true,防止Cookie值被頁面腳本讀取
  • 設置Secure為true晾腔,只有在https協(xié)議下訪問的時候舌稀,瀏覽器才會發(fā)送該Cookie
  • 給Cookie設置有效期(分一個長時間不活動的失效時間與即使一直在活動也要失效的時間)

Web Storage

準確地來說,因為cookie確切地存在著缺點灼擂,h5也對其進行了優(yōu)化扩借。因此localStorage和sessionStorage解決了不少cookie的缺點,也被作為本地存儲的重要方式缤至。

Web Storage API

length——數(shù)據(jù)長度
setItem (key, value) —— 保存數(shù)據(jù),以鍵值對的方式儲存信息
getItem (key) —— 獲取數(shù)據(jù)康谆,將鍵值傳入领斥,即可獲取到對應的value值
removeItem (key) —— 刪除單個數(shù)據(jù),根據(jù)鍵值移除對應的信息
clear () —— 刪除所有的數(shù)據(jù)
key (index) —— 獲取某個索引的key


LocalStorage

特點
  • 生命周期是永久性的沃暗。即使關閉瀏覽器月洛,數(shù)據(jù)也不會銷毀
  • 存儲大小一般為5M
  • 需要主動去銷毀
  • 儲存的對象類型均為字符串類型
  • 同源可以讀取并修改localStorage數(shù)據(jù)

SessionStorage

特點
  • 生命周期是在瀏覽器關閉前。即關閉瀏覽器數(shù)據(jù)就會銷毀
  • 存儲大小一般為5M
  • 儲存的對象類型均為字符串類型
  • 只允許同一窗口訪問
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末孽锥,一起剝皮案震驚了整個濱河市嚼黔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌惜辑,老刑警劉巖唬涧,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異盛撑,居然都是意外死亡碎节,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門抵卫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狮荔,“玉大人,你說我怎么就攤上這事介粘≈呈希” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵姻采,是天一觀的道長雅采。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么总滩? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任纲堵,我火速辦了婚禮,結果婚禮上闰渔,老公的妹妹穿的比我還像新娘席函。我一直安慰自己,他們只是感情好冈涧,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布茂附。 她就那樣靜靜地躺著,像睡著了一般督弓。 火紅的嫁衣襯著肌膚如雪营曼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天愚隧,我揣著相機與錄音蒂阱,去河邊找鬼。 笑死狂塘,一個胖子當著我的面吹牛录煤,可吹牛的內容都是我干的。 我是一名探鬼主播荞胡,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼妈踊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了泪漂?” 一聲冷哼從身側響起廊营,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎萝勤,沒想到半個月后露筒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡纵刘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年邀窃,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片假哎。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡瞬捕,死狀恐怖,靈堂內的尸體忽然破棺而出舵抹,到底是詐尸還是另有隱情肪虎,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布惧蛹,位于F島的核電站扇救,受9級特大地震影響刑枝,放射性物質發(fā)生泄漏。R本人自食惡果不足惜迅腔,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一装畅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧沧烈,春花似錦掠兄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至腋逆,卻和暖如春婿牍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背惩歉。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工等脂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人撑蚌。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓慎菲,卻偏偏與公主長得像,于是被迫代替她去往敵國和親锨并。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353