requests库入门-16-Session和Cookie
分类专栏: Python接口自动化测试之requests库入门
作者 | Anthony_tester ,300w+访问量博主,Oracle测试开发工程师。
地址 | https://blog.csdn.net/u011541946/article/details/77745924
声明 | 本文是 Anthony 原创,已获授权发布,未经原作者允许请勿转载
我们可能听说了Session和Cookies,面试中可能也会被问到这个两者之间的区别。本篇主要通过画图来理解两个机制,然后通过回到两个机制的不同来结束整个Requests的学习。
1.为什么需要Session和Cookie
我们知道HTTP是一种无状态的响应。上一个请求和下一个请求没有任何关系。但是现实过程中,需要这些请求之间有关系。例如,你在首页登录,但是进入到列表页就显示没有登录,点击一个数据提示你还需要登录。为了解决这样问题,需要两个机制,那就是Session 和 Cookie 浏览器第一次发送请求,没有带cookies,服务器收到之后,在数据库找,找到有相关权限。服务器就给出相应,并设置一个cookie。浏览器收到服务器发送过来的cookie,就开始解析cookie,并把这个cookie保存到本地。这样,以后浏览器每次发送请求,都带上cookie,服务器会对cookie进行解析,发送这个cookie是之前服务器设置的cookie,服务器就开始给浏览器发送HTTP响应,这样,一个完整的交互流程就走下来了。
cookies=dic(c='xxxx')requests.get(url,cookies=cookies)r = requests.get(url)r.cookies['cookiename']
3.Session机制原理 首先浏览器发送一个HTTP请求,服务器端完成认证之后,会对这个会话进行保存,也就是会存储Session,这个可能存在服务上,可能存在数据库或者redis上。服务器给出一个响应,带上cookies-session-id的信息。浏览器拿到响应之后,也会保存到本地,但是这个时候cookie很小,可能只有一个id。浏览器开始发送HTTP请求,带上cookie,服务器上解析sessionid,给出HTTP响应。
4.Session和Cookie两者的区别
1)、cookie数据存放在客户的浏览器上,session数据放在服务器上
2)、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session
3)、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用COOKIE
4)、单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能大于3K。
- To Be Continued -
requests库入门-16-Session和Cookie的更多相关文章
- Requests库主要方法解析以及Requests库入门需要掌握的框架
Requests库主要方法解析以及Requests库入门 1.requests.request(method,url,**kwargs) **kwargs:控制访问的参数,均为可选项 params:字 ...
- requests库入门01-环境安装
最近在项目中写了一个接口自动化测试的脚本,想要写一些文章来一下,方便自己回头来温习,感兴趣的可以跟着看,先写关于requests库的一些基本操作,然后再写整个框架的搭建.使用的是Python3+req ...
- 使用Python的requests库进行接口测试——session对象的妙用
from:http://blog.csdn.net/liuchunming033/article/details/48131051 在进行接口测试的时候,我们会调用多个接口发出多个请求,在这些请求中有 ...
- Requests库入门
安装: $ pip install requests Response对象的一些基本属性: Response.status_code 请求的返回状态,正常为200 Response.text 页面的字 ...
- 第一天 Requests库入门
Requests库的get()方法 requests.get(url, params=None, **kwargs) ∙ url : 拟获取页面的url链接 ∙ params : url中的额外参数, ...
- requests库入门12-文件上传和下载
因为找不到可以演示上传接口,所以只能纯代码了 文件上传 上传文件是在请求中使用files参数,files需要指向一个dict,然后dict里面的键是接口中对应文件名的字段,而值就是打开这个文件读取到内 ...
- Python 爬虫-Requests库入门
2017-07-25 10:38:30 response = requests.get(url, params=None, **kwargs) url : 拟获取页面的url链接∙ params : ...
- Python Requests库入门——应用实例-百度、360搜索关键词提交
百度的关键词接口: http://www.baidu.com/s?wd=keyword 360的关键词接口: http://www.so.com/s?q=keyword keyword就是需要查找的关 ...
- requests库入门笔记1
1.使用requests库发送请求,fiddler无法抓到包:使用浏览器请求相同的url,可以抓到包 在请求参数中添加 proxies参数,如下: proxies = { 'http': 'http: ...
随机推荐
- swift------导入OC三方类找不到头文件的解决方法
1.首先新建个 swift工程 2.在swift 中新建 OC 类 比如新建 Request 类,会自动生成个.XXXX-Bridging-Header 类: 3.让后把 导入的第三方头文件导入进去. ...
- 微信小程序生成海报保存图片到相册小测试
test.wxml <canvas style="width:{{imageWidth}}px;height:{{imageHeight}}px;" canvas-id=&q ...
- Leetcode——863.二叉树中所有距离为 K 的结点
给定一个二叉树(具有根结点 root), 一个目标结点 target ,和一个整数值 K . 返回到目标结点 target 距离为 K 的所有结点的值的列表. 答案可以以任何顺序返回. 示例 1: 输 ...
- 3)PHP基本语法和变量基础,区分大小写
(1)语法环境: PHP嵌入到html到代码中: . <?php 这里是PHP代码 ?> 标准形式: <script language='php'> 这里是PHP代码 < ...
- 第04项目:淘淘商城(SpringMVC+Spring+Mybatis)【第九天】(商品详情页面实现)
https://pan.baidu.com/s/1bptYGAb#list/path=%2F&parentPath=%2Fsharelink389619878-229862621083040 ...
- Kubernetes 问题定位技巧:分析 ExitCode
使用 kubectl describe pod 查看异常的 pod 的状态,在容器列表里看 State 字段,其中 ExitCode 即程序退出时的状态码,正常退出时为0.如果不为0,表示异常退出,我 ...
- Keywords|Result|Final check
科研论文写作 风格最好是excited,不要过于谦虚. Reference不要过多引用自己的paper,可以多引用本刊物的paper. Acknowledgement:感谢帮助input的人员,可以n ...
- Hive(二)—— 架构设计
Hive架构 Figure 1 also shows how a typical query flows through the system. 图一显示一个普通的查询是如何流经Hive系统的. Th ...
- uboot 编译
. 解包u-boot源码包(u-boot-2016.07) . 配置交叉编译器 根据内核编译里的步骤配置 . 编译uboot yum install ncurses* // ncurses是个终端的图 ...
- js几个常用的弹层
js弹层技术很常见,自己每次用上网找,一找一大堆. 对比了几种,考虑通用性和易用性,这里记录两个. jQueryUI的http://jqueryui.com/dialog/#modal-form ar ...