Cookie与session,sessionStorage 与LocalStorage的区别

cookie:
cookie数据存放在客户端浏览器上;
始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递,每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如回话标识 sessionId;
有路径(path)的概念,可以限制,cookie只属于某个路径下;
cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。所以cookie一般用来存放不敏感的信息,比如用户设置的网站主题;
cookie可以服务器端响应的时候设置,也可以客户端通过JS设置cookie会在请求时在http首部发送给客户端。单个cookie保存的数据不能超过4k,很多浏览器都限制一个站点最多保存20个cookie

session:
session数据放在服务器上,session会在一定时间内保存服务器上。当访问增多,会比较占用服务器的性能。考虑到减轻服务器性能方面,应当使用cookie;
敏感的信息用session存储,比如用户的登陆信息,session可以存放于文件,数据库,内存中都可以;

从多方面看cookie和localStorage 与sessionStorage:
生命周期:
cookie:可以设置失效时间,若不设置,默认是关闭浏览器后失效。
LocalStorage:除非自己手动清除,否则永久保存。
SessionStorage:仅在当前网页会话下有效,关闭页面或者浏览器后就会被清除。

存放大小:
cookie:4k左右
LocalStorage和SessionStorage:可以保存5M的信息。

http请求:
cookie:每次都会携带在http头中,如果使用cookie保存过多数据,会带来性能问题。
LocalStorage和SessionStorage:仅在客户端浏览器中保存,不参与和服务器的通讯。

易用性:
cookie:需要程序员自己封装,原生的cookie接口不友好。
LocalStorage和SessionStorage:既可采用原生接口,也可以再次封装。

应用场景:
从安全性来说,因cookie在每次http请求时都会携带,会浪费带宽,所以应尽可能少用,此外cookie还需要指定作用域,不可以跨域调用,限制很多,但是用户识别用户登录来说,cookie比storage好用;
其他情况下可以使用storage,LocalStorage始终有效,窗口或浏览器关闭也一直保存,可以用来在页面传递参数,用作持久数据,SessionStorage可以用来保存一些临时数据,防止用户刷新页面后丢失了一些参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值