浏览器:cookie 与web storage(五颗星)

简洁版:

Cookie、SessionStorage、 LocalStorage都是浏览器的本地存储。

它们的共同点:都是存储在浏览器本地的

它们的区别:

1.与服务器端通信: cookie是由服务器端写入的,在前端给后端发送请求的时候会自动携带中的数据,,而每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题,cookies在同一域名domain限制20个cookies, LocalStorage都是由前端写入的,在前端给后端发送请求的时候不会自动携带中的数据,仅在客户端(即浏览器)中保存,不参与和服务器的通信

2. 数据生命期:cookie可设置实现失效时间,默认是关闭浏览器后失效,cookie的生命周期是由服务器端在写入的时候就设置好的,LocalStorage是除非被清除,否则永久保存,是永久性存储方式,SessionStorage是仅在当前会话下有效,关闭页面或浏览器后被清除,是会话级存储方式。

3. 存放数据大小:cookie的存储空间比较小,4096B,SessionStorage、 LocalStorage存储空间比较大,大概5M。三者都以键值对形式存储。

4. 是否遵循同源原则:Cookie、SessionStorage、 LocalStorage数据共享都遵循同源原则,SessionStorage还限制必须是同一个页面并且他不能在所有同源窗口中共享,Cookie、LocalStorage能在所有同源窗口中共享。

5. 易用性: Cookie需要程序员自己封装,源生的Cookie接口不友好,SessionStorage、 LocalStorage源生接口可以接受,亦可再次封装来对Object和Array有更好的支持

6. 应用场景:Cookie一般用于存储登录验证信息SessionID或者token,LocalStorage常用于存储不易变动的数据,减轻服务器的压力,SessionStorage可以用来检测用户是否是刷新进入页面,如音乐播放器恢复播放进度条的功能。

7. 安全性:cookies以纯文本形式在浏览器和服务器中传递,容易非法用户截获,然后进行篡改,cookies有效期内重新发送给服务器相当危险,SessionStorage、 LocalStorage仅在客户端保存,不会和服务器进行交互

啰嗦版:

Cookie:cookie 数据始终在同源的 http 请求中携带(即使不需要),即 cookie 在浏览器和服务器间来回传递。而 sessionStorage 和 localStorage 不会自动把数据发给服务器,仅在本地保存。cookie 数据还有路径(path)的概念,可以限制 cookie

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

前端面试题 文章被收录于专栏

前端面试的一些常问问题、问题的具体实现(可直接运行)以及底层原理

全部评论

相关推荐

在看牛客的社畜很积极:身高体重那一行信息去掉,学校那一行的信息放上面,找半天都没找到你是哪个学校什么专业的
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务