cookies
- Cookie是由服务器发送到客户端浏览器并保存在本地的一小块数据。它主要用于跟踪用户会话、存储用户偏好设置、记住用户登录状态
- cookies有有效期,超过有效期,cookies就不可用
- 在前端每次请求接口时,都会在cookies中带上name和value值
- Cookie的生命周期由其过期时间决定。如果设置了过期时间,则Cookie在过期时间到达时会自动失效;如果没有设置过期时间,则Cookie默认为会话Cookie,在浏览器关闭时失效
- 如果cookies错误或过期,服务端都会退登,本地客户端的cookies也会清空


不传cookie,且连续请求接口
- 在第一次请求登录接口成功后,我们继续请求详情页面的接口,出现以下信息

- 这就是出现了Cookies失效(此处为没有传入已经登陆后获得的cookies),需要我们重新登录
Session
- Session是服务器端用来存储用户信息的一种机制。当用户访问网站时,服务器会为该用户创建一个唯一的Session,并生成一个Session ID。这个Session ID用于在多个请求之间保持用户的会话状态
- Session保存在服务端,而cookies保存在客户端
- Session机制通常与Cookie机制配合使用。Cookie用于在客户端存储Session ID,而Session则用于在服务器端存储用户的状态信息。
- 需要注意的是,虽然Session ID通常通过Cookie来传递,但Session本身并不依赖于Cookie。如果客户端禁用了Cookie,Session还可以通过URL重写或隐藏表单字段等方式来传递Session ID。
- 使用requests.Session()新建一个会话对象,这样以后的该会话的请求都会自动带Cookies或者Session(但是不携带Token)
- 得到会话对象后,所有的get、post请求都需要在该会话对象内进行,即调用该会话对象的get、post方法

- req的cookies中会携带有登陆状态

- 而res会在发送请求时也携带这一个Cookies

- res2由于也在req这个会话对象内,所以也自动携带上了Cookies

- 如果不使用Session会话,就需要手动在header中加入cookies,如下

- 注意:此时就算将浏览器中的Cookies清空,也不会影响pycharm中的请求,因为该登陆状态是保存在服务端,且没有过期,那么还是可以使用的