前端面试八股文每日一题——JavaScript
请你描述一下 cookies,sessionStorage 和 localStorage 的区别?
参考答案:
sessionStorage和localStorage是HTML5的Web Storage API提供的,可以方便的在web请求之间保存数据。有了本地数据,就可以避免数据在浏览器和服务器间不必要地来回传递。
sessionStorage、localStorage、cookie都是在浏览器端存储的数据,其中sessionStorage的概念很特别,引入了一个“浏览器窗口”的概念。sessionStorage是在同源的同窗口(或tab)中,始终存在的数据。也就是说只要这个浏览器窗口没有关闭,即使刷新页面或进入同源另一页面,数据仍然存在。关闭窗口后,sessionStorage即被销毁。同时“独立”打开的不同窗口,即使是同一页面,sessionStorage对象也是不同的。
cookies会发送到服务端。其余两个不会。
Microsoft指出Internet Explorer 8增加cookie限制为每个域名50个,但IE7似乎也允许每个域名50个cookie。Firefox每个域名cookie限制为50个。Opera每个域名限制为30个。Firefox和Safari允许cookie多达4096个字节,包括名(name)、值(value)和等号。Opera允许cookie多达4096个字节,包括名(name)、值(value)和等号。Internet Explorer允许cookie多达4095个字节,包括名(name)、值(value)和等号。
区别:
cookie
每个域名存储量比较小(各浏览器不同,大致4K)。
所有域名的存储量有限制(各浏览器不同,大致4K)。
有个数限制(各浏览器不同)。
会随请求发送到服务器。
localStorage:
永久存储。
单个域名存储量比较大(推荐5MB,各浏览器不同)。
总体数量无限制。
sessionStorage:
只在session内有效。
存储量更大(推荐没有限制,但是实际上各浏览器也不同)。