首頁技術(shù)文章正文

Cookie、sessionStorage、localStorage的區(qū)別

更新時(shí)間:2021-04-15 來源:黑馬程序員 瀏覽量:

1577370495235_學(xué)IT就到黑馬程序員.gif


(1)問題分析

面試官主要是針對(duì)瀏覽器緩存方面的知識(shí)面進(jìn)行考核,其中主要考點(diǎn)是HTML 5 本地存儲(chǔ)的應(yīng)用的考察,旨在敲定求職者是否具備真實(shí)的開發(fā)工作經(jīng)驗(yàn)。

(2)核心問題講解

共同點(diǎn)
都是保存在瀏覽器端!

區(qū)別
1)cookie數(shù)據(jù)始終在同源的http請(qǐng)求中攜帶(即使不需要),即cookie在瀏覽器和服務(wù)器間來回傳遞;存儲(chǔ)大小限制也不同,cookie數(shù)據(jù)不能超過4k,同時(shí)因?yàn)槊看蝖ttp請(qǐng)求都會(huì)攜帶cookie,所以cookie只適合保存很小的數(shù)據(jù),如會(huì)話標(biāo)識(shí)。
而sessionStorage和localStorage不會(huì)自動(dòng)把數(shù)據(jù)發(fā)給服務(wù)器,僅在本地保存。sessionStorage和localStorage 雖然也有存儲(chǔ)大小的限制,但比cookie大得多,可以達(dá)到5M或更大。
2) 數(shù)據(jù)有效期不同,sessionStorage:僅在當(dāng)前瀏覽器窗口關(guān)閉前有效,自然也就不可能持久保持;localStorage:始終有效,窗口或?yàn)g覽器關(guān)閉也一直保存,因此用作持久數(shù)據(jù);cookie只在設(shè)置的cookie過期時(shí)間之前一直有效,即使窗口或?yàn)g覽器關(guān)閉。
3)作用域不同,sessionStorage不在不同的瀏覽器窗口中共享,即使是同一個(gè)頁面;localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。

(3) 問題擴(kuò)展

1)session和cookie有什么區(qū)別 ?
建議答案 : session是存儲(chǔ)服務(wù)器端,cookie是存儲(chǔ)在客戶端,所以session的安全性比cookie高。獲取session里的信息是通過存放在會(huì)話cookie里的session id獲取的。而session是存放在服務(wù)器的內(nèi)存中里,所以session里的數(shù)據(jù)不斷增加會(huì)造成服務(wù)器的負(fù)擔(dān),所以會(huì)把很重要的信息存儲(chǔ)在session中,而把一些次要東西存儲(chǔ)在客戶端的cookie里。
session的信息是通過sessionid獲取的,而sessionid是存放在會(huì)話cookie當(dāng)中的,當(dāng)瀏覽器關(guān)閉的時(shí)候會(huì)話cookie消失,所以sessionid也就消失了,但是session的信息還存在服務(wù)器端
2)怎么給localStorage設(shè)置值,和獲取值 ?
設(shè)置值:localStorage.setItem(鍵,值)
獲取值:localStorage.getItem(鍵)

(4)結(jié)合項(xiàng)目中使用

這個(gè)用的比較多的是在注冊(cè)登陸這個(gè)功能的時(shí)候





猜你喜歡:

HTML5新增form屬性有哪些功能?具體應(yīng)該怎樣操作?

HTML5的瀏覽器支持概況【web前端培訓(xùn)】

黑馬程序員Html5+Css3由淺入深視頻教程下載    

黑馬程序員前端高級(jí)軟件工程師培訓(xùn)

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!