关于session、cookie、sessionStorage、localStorage的简要理解

一、cookie和session
首先session和cookie用于浏览器客户端与服务端进行数据交互,通过会话的方式跟踪浏览器用户身份

1.1) 一般由服务器生成,可以设置失效时间,如果是浏览器生成则默认浏览器关闭后失效

1.2)与服务器端通信,每次请求都放在http请求头中

1.3)数据存储在内存中,数据大小为4KB,保存类型为字符串

(2) session

2.1)服务端接收到客户端发送的请求,需要创建session对象,此时会检查客户端请求中是否包含sessionID,服务器端根据这个id创建session对象,如果客户端没有给,则服务端会创建一个新的session,sessionID会被返回给客户端,这个id会被保存在客户端的cookie中。

2.2)如果用户禁用cookie,则要使用URL重写,浏览器不支持cookie的时候,会重写url将sessionID拼接到访问地址后

2.3)通过类似于HashTable的数据结构来进行存储,没有大小限制

相比cookie而言session的安全性更好,seesionID存储在cookie中,要攻破session需要先攻破cookie;而且sessionID是加密的,sessionID是有人登陆或者启动session_start才会有;在第二次启动session_start后,之前的sessionID就会失效,所以session安全性更好。

二、WebStorage
HTML5的WebStorage提供了两种API: localStorage(本地存储)和sessionStorage(会话存储)

1.生命周期:

localStorage的生命周期是永久的,关闭页面或浏览器之后localStorage中的数据也不会消失。localStorage除非主动删除数据,否则数据永远不会消失。
sessionStorage的生命周期是在仅在当前会话下有效。sessionStorage引入了一个“浏览器窗口”的概念,sessionStorage是在同源的窗口中始终存在的数据。只要这个浏览器窗口没有关闭,即使刷新页面或者进入同源另一个页面,数据依然存在。但是sessionStorage在关闭了浏览器窗口后就会被销毁。同时独立的打开同一个窗口同一个页面,sessionStorage也是不一样的。

2.存储大小:

localStorage和sessionStorage的存储数据大小一般都是:5MB

3.存储位置:

localStorage和sessionStorage都保存在客户端,不与服务器进行交互通信。

4.存储类型:

localStorage和sessionStorage只能存储字符串类型,对于复杂的对象可以使用ECMAScript提供的JSON对象的stringify和parse来处理

WebStorage由于不会传送到服务器,所以更安全,也能节省网络流量,存储数据也比cookie要大,存储在本地也使得读取数据更快,因为存在伪造问题,不建议存储敏感信息

转载于:https://www.cnblogs.com/yanggl/p/10286804.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值