cookie,session,token之间的关系

先介绍各个的含义,应用场景

Cookie

Cookie是存储在用户端小型文本文件,用于辩护用户身份信息和会话跟踪。

Session

Session用于在服务器端跟踪用户的状态和信息

Token

Token是存储在用户浏览器端,用于身份验证和授权的机制

Cookie和session之间的关系

当用户首次访问网站时,服务器会创建一个session,且生成一个独特的sessionID,这个sessionID保存着cookie中。当用户再次访问服务器时,浏览器会自动发送含有sessionID的cookie给服务器。服务器收到请求后,对比查找对应的session信息,并识别用户恢复会话状态

这样的好处是:即使退出了浏览器,再次进入时,只要cookie没有过期,用户的会话信息仍然可以在下次登陆的时候恢复。这样,网站可以提供更加人性化的服务,并且能够记住用户的登录等重要信息,例如用户喜好,主题选择等信息。

Cookie和session维护用户会话状态这个跟token的区别在哪里

存储位置不同,cookie是存储在用户端的小型文本文件,而token是放在用户浏览器本地

安全性差异,token会更加安全,因为他们可以结合加密技术使用,并且更容易实现跨域身份验证。Cookie的安全性较差,因为是明文传输的

跨域能力,token更容易实现跨域身份验证,而cookie会受到同源策略的影响不允许跨域

依赖性,使用token时,服务器和客户端的耦合度较低,有助于构建更加灵活的应用程序架构。而cookie通常需要配合服务器端的session一起使用,增加了系统的复杂度

抵抗CSRF(跨站请求伪造)攻击:Token能够提供更好的保护来抵抗CSRF攻击,因为它们是无状态的,并且可以通过额外的安全措施(如签名)来确保其完整性。

Cookie想要跨域共用的话有什么办法吗

  1. 使用顶级域名作为cookie的域名:将cookie的域名设置为顶级域名,这样所有的子域名都能访问到这个cookie。例如,如果有两个子域名http://a.example.com和http://b.example.com,那么可以将Cookie的域名设置为".example.com",确保这两个子域名都能够访问到相同的Cookie。
  2. 设置cookie的路径为 /根路径 ,所有的域名都能够访问到
  3. 使用CORS策略:跨域资源共享(CORS)是一种机制,它允许在某些情况下放宽同源策略的限制。通过设置CORS相关的HTTP头部信息,可以实现跨域Cookie的共享。可以设置服务器响应头为一个包含所有允许域名的列表,例如Access-Control-Allow-Origin: http://domain1.com, http://domain2.com。
  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值