news 2026/6/15 14:43:54

【接口测试】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/6/15 13:22:08

职场笔杆子必看!2025公文写作软件TOP3对比

作为一名体制内笔杆子,写作公文的痛谁懂,临时的派稿任务,格式要求超严格,内容要求严谨合规,加班改稿也都是经常的事。 随着AI的不断发展,人工智能的写作能力越来越强,为写作带来显著的提效&…

作者头像 李华
网站建设 2026/6/15 12:30:45

Jenkins 2.528.3 与 GitLab 深度集成:实现自动构建

在 Jenkins 2.528.3 版本中,实现 GitLab 代码推送(Push)后自动触发构建,主要依赖于 GitLab Plugin 或 Generic Webhook Trigger Plugin。以下是两种主流方法的详细配置指南,帮助构建高效的自动化流水线。核心配置概览自…

作者头像 李华
网站建设 2026/6/15 19:20:11

算法基础-多源最短路

多源最短路 多源最短路:即图中每对顶点间的最短路径。floyd 算法本质是动态规划,⽤来求任意两个结点之间的最短路,也称插点法。通过不断在两点之间加 ⼊新的点,来更新最短路。 适⽤于任何图,不管有向⽆向,…

作者头像 李华
网站建设 2026/6/15 18:59:06

新生态・新动能:人工智能产业格局分析

‍当前,人工智能产业已成为驱动数字经济高质量发展的核心引擎,不断推动产业生态建设和效能提升,各地政府积极响应推进科研创新与算力基础设施建设,因地制宜出台特色政策。持续探索新型大模型,推动AI产业向更高水平迈进。 一、人工…

作者头像 李华
网站建设 2026/6/15 12:22:06

Spring Cloud Gateway 核心特性与实践指南

摘要 本文深入探讨Spring Cloud Gateway在微服务架构中的核心作用,包括路由、过滤、限流等关键功能的实现原理与实践应用。通过详细的代码示例和架构分析,帮助开发者掌握Spring Cloud Gateway的最佳实践方法。 1. 引言 1.1 Spring Cloud Gateway 简介 Sp…

作者头像 李华
网站建设 2026/6/15 12:15:35

血液H组二糖—解析血型奥秘与疾病标志的核心糖结构 146076-26-8

血液H组二糖是ABO血型系统中最关键的抗原决定前体结构,被视为血型特异性表达的分子基石。它不仅构成了人类红细胞表面最基本的抗原表位,更在细胞识别、微生物感染、肿瘤发展及免疫调节等一系列生物学过程中扮演着核心角色。作为寡糖研究中的重要标准品和…

作者头像 李华