Cookie和Session鉴权

01

引言

作为一个测试工程师,做接口自动化时,难免会遇到接口之间的关联以及登录接口等,所以了解cookie和session、token是必备的,下面这篇文章来给大家简单介绍Cookie和Session。

02


Cookie

  1. 什么是Cookie

    目前大部分网络都是采用HTTP协议,那么HTTP协议本身是没有状态的。等同于,服务器无法判断用户的身份,cookie实质是以一个Key-value格式保存的。客户端向服务器发送请求时,response向客户端发送一个cookie,客户端将此cookie保存起来(保存于客户端),当浏览器再次发起请求时,在请求信息里将cookie一并发送给服务器,服务器检查该cookie,可以校验用户的状态。

  2. Cookie的运行流程

  3. 实例-登录京东

    1. 登录京东

    2. 退出登录

    3. 回到登录界面,查看Cookie信息


    4. 会发现上次登录的用户名(手机号码)已经回显在页面上
    5. F12->Appication->Cookie


    6. mp就是我们填写的用户名

    7. Cookie是有过期机制的,Expires是过期时间,相当于一个月之内登录京东,都会看到手机号码回显效果

03


Session

  1. 什么是Session?

    Session 是存放在服务器端的,当浏览器第一次发送请求时,服务器自动生成了一个Session和一个Session ID用来唯一标识这个Session,并将其通过响应发送到浏览器。当浏览器第二次发送请求,会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上,服务器从请求中提取出Session ID,并和保存的所有Session ID进行对比,找到这个用户对应的Session。

  2. 运行机制

    服务器生成、存储、验证,以cookie的方式传给客户端,客户端以同样的方式发送给服务端。session有状态。


  3. Session的过期机制与Cookie的区别?

    1. 当服务器端的会话过期了,那么当你继续发起请求的时候,因为你从客户端带过去的会话编号还是之前的那个,就会验证不通过,就会提示你会话过期请重新登录。

    2. Cookie有效时间是写入过期是什么时候,到了这个时间就自动过期,而session的过期一般通过监听系统最后一次访问,如果最近一次访问跟当前访问超过了这个时间,服务端的session就会过期,如果在不断的使用这个系统,那么系统的访问时间会一直不停的更新。

    3. session默认失效时间是30min

  4. Session的弊端?

    如果做了负载均衡的话,搭建了多个服务器,虽然每个服务器都执行的是同样的业务逻辑,但是session数据是保存在内存中的(不是共享的),用户第一次访问的是服务器1,当用户再次请求时可能访问的是另外一台服务器2,服务器2获取不到session信息,就判定用户没有登陆过。

04


python发起cookie+session方式进行鉴权

import requests
# 创建session对象,后面直接使用创建的对象发送请求即可
# requests库的session会话对象可以跨请求保持某些参数
s = request.session()
url = 'http://api.juheapi.com/japi/toh'
data = {
    "key":"7486da7f50cd55e6774fb3311b526d**",
    "v":'1.0',
    "month":12,
    "day":15
    }
response = s.post(url=url,data=data)
print(response.json())

05


PS

  1. 大家有问题,可以通过公众号首页添加作者微信,多交流,多沟通;

  2. 很久没更新了,后续会继续抽时间继续更新;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值