Session与Cookie以及Token的相关总结

一、Cookie

  • 存储在浏览器。

产生过程:当浏览器第一次访问服务端时,服务端会记录身份信息,格式为key=value,放入Set-Cookie字段中,随响应报文一并发给浏览器,浏览器接收并保持这个身份标识。下次请求会自动将key=value字段发给服务端。

缺点:cookie不安全(敏感数据需要加密,通过SSL),只能保存少量数据,同时浏览器存储的cookie数量也有限制。

优点:

可以控制cookie的生命期

分担了服务器存储的压力

二、Session(会话控制):

  • 存储在服务端的内存中

产生过程:(某服务端程序(如Servlet)调用**HttpServletRequest.getSession(true)**这样的语句时才会被创建)当浏览器第一次请求服务端时,服务端自动创建一个Session对象并附带一个Session_ID与之对应,id值会返回到浏览器,之后的请求中,Cookie会携带这个id来识别id。当会话过期或放弃后,服务端将终止会话。

三、token

由服务端生成的一段字符串,作为客户端进行请求的令牌,在第一次登录时服务端产生。token不存储数据,只是作为一个key,与之相关的数据还是存储在服务器上。

  • 存放在客户端(浏览器)
    • 存储在LocalStorage中,每次调用接口都把它当成一个字段传给后台
    • 存储在cookie中,自动发送,缺点不能进行跨域

四、token与Cookie的区别

Cookie不允许跨域,token支持跨域,前提传输的用户信息是HTTP头传输的

相对优势

1、无状态化,服务端无需存储token,只需要验证token数据,而session需要存储在服务端,通过cookie的sessionid查找对应的session。
2、避免CSRF跨站伪造攻击。

五、Cookie和Session的区别

    cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。 由于在服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上还有其他选择(url方案)。
什么是跨域

1.当一个请求url的**协议、域名、端口**三者之间任意一个与当前页面url不同即为跨域。

六、Session与Token的区别

身份认证方面,token比session更安全。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值