cookie和session和token

session

  session的中文翻译是“会话”,当用户打开某个web应用时,便与web服务器产生一次session。服务器使用session把用户的信息临时保存在了服务器上,用户离开网站后session会被销毁。这种用户信息存储方式相对cookie来说更安全,可是session有一个缺陷:如果web服务器做了负载均衡,那么下一个操作请求到了另一台服务器的时候session会丢失。

cookie

  cookie是保存在本地终端的数据。cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器。由于cookie是存在客户端上的,所以浏览器加入了一些限制确保cookie不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的cookie数量是有限的。

     cookie的组成有:名称(key)、值(value)、有效域(domain)、路径(域的路径,一般设置为全局:"\")、失效时间、安全标志(指定后,cookie只有在使用SSL连接时才发送到服务器(https))。

token

     token的意思是“令牌”,是用户身份的验证方式,最简单的token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,由token的前几位+盐以哈希算法压缩成一定长的十六进制字符串,可以防止恶意第三方拼接token请求服务器)。还可以把不变的参数也放进token,避免多次查库

一、状态保持原理

cookie和session是为了实现状态保持的。1.用户在登录时向后端服务器发送post请求,服务器接受请求,检验请求参数无误后,处理登录业务逻辑,返回响应。此时服务器端生成对应的cookie字符串,响应到前端浏览器,2.浏览器本地保存cookie值;3.在登录后用户再向服务器发送请求,则带者浏览器本地保存的cookie值,发送给服务器;4.服务器在接受到请求后,获取到请求参数(里面带有cookie),服务器吧获取的cookie值跟之前服务器生成的cookie比较,发现cookie值相同,则默认时同一个用户再访问服务器,从而实现用户登录状态保持。

二、cookie和session的区别

  1. cookie和session都是基于键值对的字符串;

  2.俩个都是都由后端服务器生成的;

  3.cookie字符串保存在客户端浏览器中,session值保存在服务器中,session比cookie更安全。

  4.cookie相当于明文,而session类似于密文,是由后端服务器经过编码后的一段无序字符串。

  5.既然session是key-value格式的数据,则它的键session_id保存在cookie中的,值session_data保存在服务器,通过key来取到value;

三、token 和session 的区别

    session 和 oauth token并不矛盾,作为身份认证 token安全性比session好,因为每个请求都有签名还能防止监听以及重放攻击,而session就必须靠链路层来保障通讯安全了。如上所说,如果你需要实现有状态的会话,仍然可以增加session来在服务器端保存一些状态

————————————————
版权声明:遵循CC 4.0 BY-SA版权协议。
原文链接:https://blog.csdn.net/dongyanfei123/article/details/81021762

原文链接:https://www.cnblogs.com/wxinyu/p/9154178.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值