news 2026/4/3 6:10:45

【接口测试】3_代码实现 _Cookie和Session

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【接口测试】3_代码实现 _Cookie和Session

文章目录

  • 一、Cookie
    • 1.1 Cookie简介
    • 1.2 Cookie+Session认证方式
    • 1.3 案例 - 看演示,此代码不需实现
  • 二、Session
    • 2.1 Session简介
    • 2.2 Session自动管理Cookie
    • 2.3 创建Session对象
    • 2.4 案例-重点
  • 三、面试题 Cookie 和 Session 区别

一、Cookie

1.1 Cookie简介

  • cookie 是工程师,针对 http协议 是无状态这一特征,设计的一种技术。
  • cookie 将数据保存在浏览器端。默认存储空间大小为 4k(可以修改)。
  • cookie 中的数据,用户和随意获取,没有安全性可言。
  • cookie 中存放的数据类型,受浏览器限制。
  • cookie 中大多存放于网络通信相关的不敏感数据信息。提高访问速度。如:用户名、登录状态等。

1.2 Cookie+Session认证方式

校验用户身份的方法不同:

  • ①令牌校验 —>比如:ihrm项目
  • ②cookie+session —>比如:tpshop商城

1、客户端第一次访问服务器-发送http请求。

2、服务器产生session_id (key),session_对象(value),并且回发http相应(携带session_id )。

3、客户端的cookie 存储服务器回发的session_id。

1.3 案例 - 看演示,此代码不需实现

完整实现 TPshop商城登录,并获取 “我的订单” 页面数据。

获取验证码:http://tpshop-test.itheima.net/index.php?m=Home&c=User&a=verify
登录:http://tpshop-test.itheima.net/index.php?m=Home&c=User&a=do_login
我的订单:http://tpshop-test.itheima.net/Home/Order/order_list.html

# 导包importrequests# 发送 获取验证码请求 - getresp=requests.get(url="http://tpshop-test.itheima.net/index.php?m=Home&c=User&a=verify&r=0.8163589828918973")# 获取 cookiemy_cookie=resp.cookies# 发送 登录请求 - post,要携带获取到的 cookie, 获取响应结果resp2=requests.post(url="http://tpshop-test.itheima.net/index.php?m=Home&c=User&a=do_login&t=0.06754297110809726",data={"username":"13812345678","password":"123456","verify_code":"8888"},cookies=my_cookie)# 打印响应结果print("登录结果:",resp2.json())# 发送请求,访问 "我的订单" 页面resp3=requests.get(url="http://tpshop-test.itheima.net/Home/Order/order_list.html",cookies=my_cookie)print("我的订单页面:",resp3.text)

二、Session

2.1 Session简介

概念:也叫 会话!从客户端登录服务器开始,直到客户端退出登录,所产生的所有通信数据,保存在 session中。

  • session 将数据存在服务器端
  • session 使用服务器存储空间,没有大小限制。
  • session 支持的数据类型,受服务器主机影响。几乎支持所有数据类型。
  • session 中的数据,大都采用 加密、转码存储。安全性较高。

2.2 Session自动管理Cookie

结论:Session自动管理Cookie

因为,cookie中的数据,都是由 session 提供的。

2.3 创建Session对象

# 创建session对象:session=requests.Session()

说明:

  • Session对象代表一次用户会话:从客户端浏览器连接服务器开始,到客户端浏览器与服务器断开。
  • 会话能让我们在跨请求时候保持某些参数,比如在同一个session 实例发出的所有请求之间保持cookie。

2.4 案例-重点

借助 session 重新实现 上述 TPshop商城登录,并获取 “我的订单” 页面数据。

实现步骤:

1、创建 session 对象(实例)。 my_session = requests.Session()【注意:() 不能丢!!!】

2、使用 session实例,调用get方法,发送 获取验证码请求(不需要提取cookie)。 my_session.get()

resp = requests.get() # 需要自己提取Cookie,然后把提取到的Cookie在下一次登录请求的时候发过去 Session能够自动管理Cookie,用Session做不需要提取Cookie

3、使用同一个 session实例,调用post方法,发送登录请求(不需要携带cookie)。my_session.post()

4、使用同一个 session实例,调用get方法,发送查看我的订单页面请求(不需要携带cookie)。my_session.get()

# 导包importrequests# 1. 创建session实例my_session=requests.Session()# 2. 使用session实例,调用 get方法,发送 获取验证码请求resp1=my_session.get(url="http://tpshop-test.itheima.net/index.php?m=Home&c=User&a=verify")# print(resp1.text)# 3. 使用同一个session实例,调用 post方法,发送 登录请求。(正确 用户名、密码)resp2=my_session.post(url="http://tpshop-test.itheima.net/index.php?m=Home&c=User&a=do_login",data={"username":"13812345678","password":"123456","verify_code":"8888"})print("登录结果:",resp2.json())# 4. 使用同一个session实例,调用 get方法,查询我的定义页面。resp3=my_session.get(url="http://tpshop-test.itheima.net/Home/Order/order_list.html")# 5. 打印响应结果print("我的订单页面:",resp3.text)

三、面试题 Cookie 和 Session 区别

1、数据存储位置:

  • Cookie 存储在 浏览器端
  • Session 存储在 服务器端

2、安全性:

  • Cookie 直接存储在浏览器,可以任意获取,没有安全性可言。
  • Session 存储在 服务器端,采用 加密、转码形式存储数据,安全性较高。

3、数据类型:

  • Cookie 直接存储在浏览器,支持测试数据类型受浏览器限制
  • Session 存储在 服务器端,服务器就是一台主机。因此几乎支持所有的数据类型。

4、大小:

  • Cookie 默认大小 4k(可调)
  • Session 直接使用服务器存储。没有大小限制。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/11 17:39:35

10个降AI率工具,专科生高效应对AIGC检测!

10个降AI率工具,专科生高效应对AIGC检测! AI降重工具:专科生高效应对AIGC检测的利器 在当前学术写作日益依赖AI技术的背景下,越来越多的专科生面临论文被检测出高AIGC率的问题。这不仅影响论文的通过率,还可能对学术诚…

作者头像 李华
网站建设 2026/3/13 2:04:27

靠国产CAD规范研发管理,赢得大客户青睐

许多中小型制造企业其产品质量过硬,但在争取大型客户订单时,却常常在供应商审核环节失利。这原因往往不在于技术能力,而在于研发管理体系不够规范,尤其是在图纸版本控制和设计变更流程方面,难以满足大客户对流程可靠性…

作者头像 李华
网站建设 2026/3/28 7:45:53

实时渲染哪家强?关键维度深度解析

在数字化浪潮席卷千行百业的今天,实时渲染技术已从专业领域的“利器”,演变为驱动数字内容创作、工业设计、智慧城市、元宇宙构建等众多场景的核心动力。面对市场上多样的解决方案与服务商,如何选择一家真正强大、可靠且适合自身业务需求的合…

作者头像 李华
网站建设 2026/4/2 22:44:30

打印机驱动下载终极指南:惠普HP LaserJet Pro M1136打印机驱动!

“惠普HP LaserJet Pro M1136打印机驱动乱下载?小心设备报废还泄露隐私!”惠普HP LaserJet Pro M1136打印机作为办公场景的万金油,集打印、扫描、复印于一体,但其驱动的适配性要求极高,稍有不慎就会出现功能缺失、设备…

作者头像 李华
网站建设 2026/3/27 9:23:31

新起点·新征程!灰鲸广告联盟乔迁之喜,鲸彩启程!

尊敬的开发者伙伴们:在这个充满希望的季节,我们满怀喜悦地向大家宣布:灰鲸广告联盟乔迁新址!崭新的办公环境,标志着灰鲸广告联盟步入全新发展阶段,更承载着我们为合作伙伴提供优质服务的不变初心。新起点新…

作者头像 李华