Python + request接口测试中Cookie和Session的获取和使用
Cookie和Session的简单理解
由于Http协议是无状态的,所以产生了cookie和session进行状态的管理。
从哪里来,在哪里,到哪里去:
--> Cookie是由服务端生成,存储在响应头中,返回给客户端,客户端会将cookie存储下来。
--> Session是由服务端生成,存储在服务端的内存、缓存、数据库等地方。
--> 在客户端发送请求时,user-agent会自动获取本地存储的cookie,将cookie信息存储在
请求头中,发送给服务端。
--> 请求都是由客户端发起的,当服务端生成了session,客户端如何获取:
1)在客户端发送请求给服务端后,服务端会根据请求信息生成session,同时生成一个
session_id,通过cookie返回给客户端。
2)客户端再次向服务端发送请求时,会通过cookie将这个session_id发送给服务端,
这样相当于带上了session的标示。
--> cookie可以作为管理session的一种方式,当cookie被禁用时,可以通过表单或重写
url传送session_id。
requests实现cookie操作
--> cookie包含在响应中,要获取响应中的cookie信息,可以用r.cookies.get_dict()获取响应
的cookie信息,并传递给后续请求。
--> 找一个不会被进行验证的网站进行练习,从输出信息中,可以看到,第2个请求使用了第一
个请求响应头中的cookies信息,保持了连接

--> 在已知cookie信息时,需要构造成对应的cookie对象传递给请求时,可以采用Cookie的返回
对象为RequestsCookieJar或者字典构造。
--> RequestsCookieJar构造cookie是已知登录响应返回的cookies信息,通过创建对象,设置对
应的值进行构造传递。

--> 采用字典构造cookies信息,将构造方式更改为:
cookies = dict(zentaosid='5qm86pvshjm3s8u729cmc0mb15')
会话对象session
会话对象让你能够跨请求保持某些参数。它也会在同一个Session实例发出的所有请求之间保持
cookie。所以如果你向同一主机发送多个请求,底层的TCP连接将会被重用,从而带来显著的
性能提升。
--> session会自动管理cookie,一个session对象会保持同一个会话中的所有请求之间的cookie
信息。

总结:
--> 会话对象session比cookie更方便管理请求的cookie信息
--> 服务器返回的cookie信息通常在响应头中
--> 如果需要将响应体中的部分信息传递给后续的请求的cookie,可以构造cookie信息并传递
Python + request接口测试中Cookie和Session的获取和使用的更多相关文章
- flask中cookie和session介绍
flask中cookie和session介绍 一.cookie: 在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.co ...
- 浅谈JS中的!=、== 、!==、===的用法和区别 JS中Null与Undefined的区别 读取XML文件 获取路径的方式 C#中Cookie,Session,Application的用法与区别? c#反射 抽象工厂
浅谈JS中的!=.== .!==.===的用法和区别 var num = 1; var str = '1'; var test = 1; test == num //tr ...
- thinkphp中cookie和session中操作数组的方法
thinkphp中cookie和session中操作数组的方法 一.ThinkPHP模板中如何操作session,以及如果session中保存的是数组的情况 在ThinkPHP的模板中操作sessio ...
- python request接口测试笔记(1)
python request接口测试笔记(1) 涉及到的功能说明: 需要登录拿到token,才能进行下一个接口的请求 读取csv文件中的信息,作为接口的参数 将接口响应结果,写入csv文件,以便分析统 ...
- flask中cookie和session设置
flask中cookie和session介绍 一.cookie: 在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户. ...
- PHP中Cookie与Session的异同以及使用
Cookie与Session的异同: 一.cookie机制 Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器.IETF RFC 2965 HTTP State Mana ...
- Django中cookie和session的操作
一.cookie和session cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是 ...
- 【Python】Flask系列-cookie和session笔记
cookie: 1.cookie出现的原因:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是为了 ...
- Django中cookie和session
cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不 ...
随机推荐
- Gym - 100187A A - Potion of Immortality —— 贪心
题目链接:http://codeforces.com/gym/100187/problem/A 题解: 光题意就想了很久:在最坏情况下的最小兔子数.其实就是至少用几只兔子就一定能找出仙药(答案存在的话 ...
- error MSB6006: “CL.exe”已退出,代码为 -1073741502。
错误1error MSB6006: “CL.exe”已退出,代码为 -1073741502.C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Plat ...
- java引用问题(—)
为了美观起见,将说明性问题用注释引起来,这样只是为了美观 基本的类型只有一块存储空间(stack中),而引用类型在内存中有两块存储空间(stack和heap中). public class test ...
- Java NIO(一) 初步理解NIO
Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式. 为什么要使用 NIO? NIO ...
- linux应用之vsftp服务的安装及配置(centos)
1.centos中vsftp服务的安装 方法1:rpm方式 #rpm –ivh vsftpd-2.0.5-10.el5.i386.rpm 安装rpm程序包(网上下载的rpm包) 方法2:yum方式 ...
- kallsyms
kallsyms 在v2.6.0的内核中,为了更好地调试内核,引入新的功能kallsyms.kallsyms把内核用到的所有函数地址和名称连接进内核文件,当内核启动后,同时加载到内存中.
- regular
regular.py import re # . # 只能匹配一个字母,而不是2个或0个 # \ # 转义 # 'abc\\.com' r'abc\.com' # 字符集[] # 匹配他所包括的任意字 ...
- java-swingButton
package com.http; import java.awt.*; import java.awt.event.*; import javax.swing.*; import com.http. ...
- 配置哨兵监控Redis运行情况
Redis的主从架构,如果master发现故障了,还得手动将slave切换成master继续服务,手动的方式容易造成失误,导致数据丢失,那Redis有没有一种机制可以在master和slave进行监控 ...
- Windows下安装zip包解压版mysql
Windows下安装zip包解压版mysql 虽然官方提供了非常好的安装文件,但是有的时候不想每次再重装系统之后都要安装一遍MySQL,需要使用zip包版本的MySQL.在安装时需如下三步: 1. 新 ...