news 2026/8/17 21:02:17

【接口测试】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/8/16 9:44:17

每日 AI 评测速递来啦(12.23)

司南Daily Benchmark 专区今日上新! SGI-Bench 一个面向科学通用智能的评测基准,由 1,000 余个经专家精心策划的跨学科样本构成,灵感来源于《Science》杂志提出的 125 个重大科学问题。 https://hub.opencompass.org.cn/daily-benchmark-de…

作者头像 李华
网站建设 2026/8/10 15:34:26

Axelspace与Exolaunch签署多批次发射安排协议并计划发射新卫星

致力于“让太空变得触手可及”的领先微卫星公司Axelspace Corporation (“Axelspace”)欣然宣布,已与全球发射整合商及发射任务管理、卫星整合与卫星部署技术领军企业Exolaunch签署多批次发射协议(MLA)。 这份多批次发射协议将加速Axelspace的业务发展。其中&#x…

作者头像 李华
网站建设 2026/8/8 8:49:13

LongCat-Flash-Omni:美团的全模态大模型

在多模态浪潮加速的 2025 年,美团再次交出了一份令人惊艳的答卷。 继 LongCat-Flash-Chat 与 LongCat-Flash-Thinking 之后,LongCat 系列迎来了新成员——LongCat-Flash-Omni。 它不仅是美团 LongCat 团队在大语言模型之后的重要升级,更是开源…

作者头像 李华
网站建设 2026/8/16 15:30:18

应用层自定义协议

自定义协议和序列化面向字节流全双工自定义协议序列化IO模块socket封装ServerserviceCalClient完整代码接下来我们实现一个网络计算器功能。自定义协议和序列化 前面我们的UDP套接字编程和TCP套接字编程都实现了应用层,但没有实现协议。是否会疑惑有没有协议有何不…

作者头像 李华
网站建设 2026/8/12 13:19:42

8个AI论文工具,助继续教育学生轻松完成写作!

8个AI论文工具,助继续教育学生轻松完成写作! AI 工具如何让论文写作更高效 在当前的继续教育环境中,学生和科研工作者面临越来越多的写作任务,而传统的写作方式往往耗时耗力。随着 AI 技术的不断进步,AI 工具正逐渐成为…

作者头像 李华