Cookie和Session的鉴权

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

一、Cookie

1、什么是Cookie?

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

2、Cookie的运行流程

client web server ①HTTP Request ②HTTP Response + Cookie ③HTTP Request + Cookie ④HTTP Response client web server

3、实例-登录京东

3.1 登录京东

3.2 退出登录

3.3 回到登录界面,查看cookie信息

在这里插入图片描述

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

在这里插入图片描述

3.3.3 mp就是我们填写的用户名
3.3.4 Cookie是有过期机制的,Expires是过期时间,相当于一个月之内登录京东,都会看到手机号回显的效果

二、Session

1、什么是Session?

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

2、运行机制?

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

client web server HTTP Request 发送已登录信息 向用户发送Session ID 记录认证状态 发送包含Session ID 的Cookie,Set-Cookie=** 发送包含Session ID 的Cookie,Set-Cookie=** 校验Session ID来判断用户身份 client web server

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

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

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

  • session默认失效时间是30min

4、Session的弊端?

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

三、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())

以上内容有误处,麻烦与在下面评论,多多指教,相互学习。谢谢!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值