一篇文章让你了解cookie、localStorage、sessionStorage存储

引言

学习编程时,我们会常常听见本地存储这个词,而且本地存储的方式也有好几种,很多同学不清楚其中的异同,今天我来给大家介绍一下 本地储存localStorage、sessionStorage与cookie的区别。

cookie

Cookie顾名思义,非常小,大小在4KB左右。主要用途是保存登录信息,比如登录一个网站市场,是可以看到“记住密码”,这通常就是通过在Cookie中存入一段辨识用户身份的数据来实现的。
Cookie机制: 如果不在浏览器中设置过期时间,cookie被保存在内存中,生命周期随着关闭而结束,这种cookie简称cookie会话。如果在浏览器中设置了cookie的过期时间,cookie被保存在硬盘中,关闭浏览器后,cookie数据依然存在,知道过期时间结束才消失。
特点:
大小:cookie的大小限制在4k。每个域名下cookie的个数现在在20个。
在客户端请求服务器端和服务器响应时,cookie始终被携带在http请求中,即使不需要(造成流量浪费)。这也是限制cookie大小的原因。
客户端可以通过document.cookie操作cookie,并不安全。
cookie可以设置过期时间、路径、域和httpOnly等字段。如果设置了过期时间,cookie会保存在硬盘里,知道到了设定的过期时间才会失效。若未设置过期时间,在浏览器窗口关闭时,cookie就失效了。路径和域两个字段限制了cookie的作用范围。httpOnly设置为true,则js不能通过document.cookie操作cookie。

localStorage

localStorage是HTML5新加入的技术,并非划时代的东西。早在IE6时代,就有叫userData的东西用于本地存储,而当时考虑到浏览器的兼容性,更通用的方案是使用Flash。而如今,localStorage被大多数浏览器所支持。
它也是采用key-value的形式存储数据,但是它与cookie有很大的区别。
特点:
对比着来,localStorage能保存更大的数据,标准浏览器是5Mb。
localStorage保存在客户端,不随着请求发送给服务器,避免了流量的浪费。
客户端可以通过:setItem、getItem方法访问localStorage。
并且,localStorage没有过期时间,如果不手动清除,数据就永远不会过期,一直保存在浏览器当中。
存储的信息在同一域中是共享的。

sessionStorage

sessionStorage与localStorage的接口类似,但保存数据的生命周期与localStorage不同。session的意思是“会话”,而作为一个前端概念,他只是可以将一部分数据在当前会话保存下来,刷新页面数据依旧存在,但当页面关闭后,sessionStorage的数据就会被清空。
session机制:当服务器收到请求需要重新创建session对象时,首先会检查客户端请求中是否包含sessionId。如果有sessionId,服务器将根据id返回对应的session对象。如果客户端请求中没有sessionId,服务器会重新创建新的session对象,并把seesion在本次响应中返回客户端。通常使用cookie方式存储sessionId到客户端,在交互中浏览器按照规则将sessionId发送给服务器。如果用户禁用cookie,则要使用URL重写。
特点:
与localStorage不同的是,sessionStorage并不持久化,在窗口关闭那一刻,sessionStorage会被清除。
存储的信息是会话级别的,同域也是不能共享的。关闭当前标签页,sessionStorage即失效。

操作方法

LocalStorage和sessionStorage具有相同的操作方法
1:sessionStorage.setItem("key","value");

2:sessionStorage.getItem("key");

3:sessionStorage.removeItem("key");

4:sessionStorage.clear();

5:点操作和[]操作

 sessionStorage.key = "value";
 sessionStorage["key"] = "value"
cookie的操作方法
1:Cookies.set('keyName',value);
2:Cookies.get(keyName);    
3:Cookies.remove(keyName);

注意:在Cookie中存对象后取出的时候需要把字符串转成json格式

  const  obj=   JSON.parse(Cookies.get("user"))

总结

好了,今天的分享就以上这些了,希望对新手朋友有所帮助,当然真正想完全掌握好这些知识,还是得多实战。各位加油吧!
最后,创作不易,各位的点赞和关注就是我创作的最大动力,我们下篇文章见。
逆战必胜!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CookieLocalStorageSessionStorage是在Web开发中常用的存储数据的方式。 Cookie是一种存储在用户计算机上的小型文本文件,由服务器通过HTTP响应发送给浏览器,浏览器会将Cookie保存,并在后续的请求中通过HTTP头部发送给服务器。Cookie可以用来存储少量的数据,例如用户的身份认证信息、用户的偏好设置等。由于存储在客户端,因此可以在不同的会话之间持久保存。 LocalStorageSessionStorage是HTML5中新增的Web存储接口,都是在浏览器端进行数据存储的方式,不需要与服务器进行交互。它们使用相似的API,都可以存储大量的数据,并且保存在浏览器的本地环境中。 LocalStorageSessionStorage之间的主要区别在于数据的生命周期和作用域。LocalStorage保存的数据没有过期时间,除非用户手动删除,否则数据会一直保留。而SessionStorage保存的数据只在当前会话中有效,当用户关闭浏览器窗口或标签页时,数据会被清除。另外,LocalStorage的数据可以在同一个域名下的不同页面间共享,而SessionStorage的数据只能在同一个页面中共享。 总结: - Cookie是在服务器和浏览器之间传递的存储方式,用于存储少量数据。 - LocalStorageSessionStorage是在浏览器端进行数据存储的方式,可以保存大量数据。 - LocalStorage的数据没有过期时间,而SessionStorage的数据在会话结束时被清除。 - LocalStorage的数据可以在同一个域名下的不同页面间共享,而SessionStorage的数据只在同一个页面中有效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值