https://blog.csdn.net/weixin_43625577/article/details/92393581
cookie:
如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie;cookie存内存,不是硬盘。
如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。
存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。
cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。
由tomcat产生的sessionid是jsessionid:
- 客户端只保存 sessionID 到 cookie 中,而不会保存 session。
- 关闭浏览器只会使存储在客户端浏览器内存中的session cookie失效,不会使服务器端的session对象失效,同样也不会使已经保存到硬盘上的持久化cookie消失。
《python接口测试》中介绍的部分
cookie、session、token3者之间的关系:
Cookie有生命周期有2种:会话期间(浏览器把它放在内存里,浏览器关闭则cookie消失)、长期有效(保存在client的硬盘里,浏览器关闭,它不会消失)。不如session安全
session是放在服务端保存,cookie是放在client端保存。
Session也有自己的生命周期。session依赖cookie。
关于token:
client发起请求时,服务器对用户信息使用hs256算法及密钥进行签名,再将签名和数据一起作为token发送给client,
client端保存token,server端不保存token。
当下次client再次发起请求时,server会对client中的信息进行加密计算出一个token值,把它与用户自己携带的token进行对比,如果是一样的,则校验通过。如果不一样,则不通过。
使用token的server,不需要保存sessionid,只需要生成token,然后验证token即可。
token有没有生命周期?