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