cookie、session、token的区别----接口测试(python)中的jwt key 部分Django源码分析

1、Cookie

cookie 是浏览器里面能存储的一种数据,仅仅是存储功能。

cookie由服务器生成,发送给浏览器,浏览器把cookie以键值对的形式保存文件内,以后请求该网站时会发到服务器。cookie是存在客户端上的,故浏览器有一些限制保证cookie不会被恶意使用。同时也不会占据太多磁盘空间,所以每个域的cookie数量是有限的。

接口测试的时候会默认存在requests请求中(python)

2、Session

session 的意思简单来说就是会话。类似在生活中沟通事情,只要一直在进行,这个沟通就没有结束,直到两者不想沟通结束。----需要注意的是,有时候登录服务器通过加密形式返回的session_id本质是token。

类似的道理,服务器要知道跟谁在沟通。为了区分,服务器给客户端分配“身份标识”(字符串),之后向服务器发请求,都带上这个“身份标识”(字符串),服务器就知道沟通(请求)的是谁了,服务器也会有一份校验的标识。沟通的对象(客户端)怎么保存这个“身份标识”,有很多种的形式,浏览器作为客户端一般默认 cookie存储。

(1)服务器使用session把用户的信息临时保存在了服务器上,用户离开网站后session会被销毁。这种用户信息存储方式相对cookie来说更安全,可是session有一个缺陷:如果web服务器做了负载均衡,那么下一个操作请求到了另一台服务器的时候session会丢失。

(2)session有有效期,他是指停留在当前页面不操作开始计算,比如设置了2小时,当你操作的时候登录状态一直保持,当你不操作的时候,等过了2小时你再去访问,此时登录就失效了

具体的实现是通过客户端与服务器的对比实现的,一般采用cookie存放session

生成:浏览器第一次访问服务器,服务器会创建一个session,同时为该session生成一个唯一的会话的key,也就是sessionid。

然后,将sessionid及对应的session分别作为key和value保存到缓存中,也可以持久化到数据库中或者redis当中。

服务器再把sessionid,以cookie的形式发送给客户端,这样浏览器下次再访问时,会直接带着cookie中的sessionid,然后服务器根据sessionid找到对应的session进行匹配。

总结:session会在服务器中存放,一般放在redis中,速度会快一些。存session和失效时间,查找session是否失效,从而判断登录状态,如果有效可以进行请求

3、Token

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值