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是否失效,从而判断登录状态,如果有效可以进行请求