cookie和session之间的关系

当登录接口依赖token的,可以先登录后,token存到一个yaml或者json或者ini的配置文件里面,
后面所有的请求去拿这个数据就可以全局使用。

如果是cookies的参数,可以用session自动关联。详情如下:

一、cookie与session都是可以用来保存信息,存储数据的。cookie是在客户端保存的(如浏览器),而session是在服务端保存的(如tomcat)。session是会话级别的(在一个会话期间,session里面的数据都不会消失)

二、cookie和session的关联技术

通过cookie可以关联session,服务端创建的每一个session都是存储在服务端内存中的,服务器的内存可能会有多个session,并且每一个session都会有一个sessionId,每一次新建一个session都会通过增加一个请求头的方法创建一个cookie来保存sessionId(可以通过抓包获取cookies,然后requests.session() 方法来控制会话)。

抓包可以用fiddler、charles、burpsuite等。选取拦截的cookies中的token值,放入requests.sesson()中,访问时即可越过身份验证,请求成功。

原因:客户端每次向服务器发起请求都会带上cookie,服务端可以通过cookie携带的sessionId来找到对应的session,从而获取session里面的数据。(每一个cookie都有自己的有效路径,通过设置自己的有效路径可以决定在发送哪些请求时可以带上该cookie,默认是本身的webapp实例)

所以cookies关联session会很方便。且首次登陆一个账号,一般会生成一个或多个唯一的cookie来保存该账号对该网站的会话信息(cookie保存sessionId,sessionId指向一个唯一的session,session保存会话信息),但是当浏览器禁用cookie后,浏览器也就没有办法通过cookie来传递sessionId了(此时session还在,只是客户端没有携带sessionId从而无法找到对应的session,解决的办法是通过url重写,把sessionId参数携带在url中,连同url一起发送给服务器即可)

另外:当调用request.geSession()方法时,首先会根据客户端传递的cookie保存的sessionId来寻找对应的session,当找不到sessionId对应的session或者没有携带sessionId时,就会自动创建一个session对象并把生成的sessionId通过客户端用cookie保存起来(客户端的cookie保存sessionId所用的key是JSESSIONID)。这样一直循环下去,每次删除后,都会新建一个session对象,并保存再cookie中(里面包含sessionid)。

具体用法可以通过help(requests.session())查看,当然需要先导入resuests。

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
CookieCookies)和 Session(会话)是用于在客户端和服务器之间跟踪用户状态和数据的关键概念。它们之间有以下关系: - CookieCookie 是在客户端(通常是浏览器)上存储数据的小型文本文件。服务器通过响应的 Set-Cookie 头部将 Cookie 数据发送给客户端。一旦客户端接收到 Cookie,它会将其存储在本地,并在后续的请求中自动将 Cookie 附加到相应的请求头部中发送给服务器。Cookie 可以包含各种信息,包括会话标识符(session ID)、用户首选项、跟踪数据等。 - SessionSession 是一种在服务器端跟踪用户状态和数据的机制。服务器会为每个用户创建一个唯一的会话标识符(session ID),并将其存储在服务器上。当用户首次访问服务器时,服务器会为该用户创建一个新的会话,并将会话 ID 发送给客户端,通常通过 Cookie 或 URL 参数的方式。客户端在后续的请求中会将会话 ID 作为身份凭证发送给服务器,以便服务器能够识别用户并检索相关的会话数据。 - 关系CookieSession 通常一起使用来实现会话管理。服务器在创建会话时会生成一个唯一的 session ID,并将其存储在 Cookie 中发送给客户端。客户端在后续的请求中会自动将该 Cookie(包含 session ID)附加到请求中发送给服务器。服务器通过解析请求中的 session ID,可以找到对应的会话数据,从而实现用户状态的跟踪和数据的存储。 总结来说,Cookie 存储在客户端,用于保存会话标识符和其他相关数据;Session 存储在服务器端,用于存储和跟踪用户状态和数据。CookieSession 一起协作,实现了跨请求的会话管理功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值