接口测试开发之:一篇搞懂 Cache、Cookie及Session的爱恨情仇

简介: 接口测试开发之:一篇搞懂 Cache、Cookie及Session的爱恨情仇

1、引言


这刚刚整理完公司内部技术分享的PPT,看看时间,又已经是凌晨…

喝一杯美咖,提提神,

反正都已经这个时间了,索性,就直接开始写博客吧。

因为最近总是被某些大佬艾特,说我这2月份更新的博文不地道了…

我也是哑巴吃黄连啊~~~


因为最近在给一些同学讲解接口的事情,

本以为 Cookie、Cache及Session这些知识,都是逢考必过的内容,然鹅,又是我想多了。


为了能让我可以多想点,今天就分享这三点姿势!!


2、Cache


关于缓存,我看了网上的一些教程讲解,几个字概括:


太繁琐,太啰嗦,长篇大论


为了能让大家更容易理解,小鱼我以文字+流程图的形式来分享。


首先,针对接口测试,Cache主要分为三类:

浏览器缓存

代理缓存

网关缓存


2.1 缓存定义

2.1.1 缓存概念

概念


使用缓存Cache的站点会监听客户端向服务器端发出的请求,并根据相应的缓存设置保存服务器端反馈的数据,如HTML页面,图片等文件。


如果用户再次使用相同的URL发送请求,请求不会直接发向服务器,而是通过缓存策略现行判断是否能够使用之前已经保存下来的反馈文件,从而降低服务器的负载及提高数据的响应时间。


2.1.2 缓存优点

优点

一个优秀的缓存策略可以为网络传输带来以下两方面的好处:


减少延迟:因为所发出的网页请求是指向更接近客户端的缓存,而不再是源服务器端,因为请求所花费时间更短,这让网站看上去反应更快,提高了用户体验。

降低网络负荷:因为缓存文件可以重复使用,节省不少的带宽,降低了网络负荷。同时站在用户的角度,这也节省了不少流量.

妈妈再也不担心我的流量不够用了


2.2 浏览器缓存

2.2.1 存储路径

存储路径:

将浏览过得网页全部内容保存到本地计算机的硬盘中


2.2.2 缓存优点

优点:


减少延迟:因为所发出的网页请求是指向更接近客户端的缓存,而不再是源服务器端,因为请求所花费时间更短,这让网站看上去反应更快,提高了用户体验。

降低网络负荷:因为缓存文件可以重复使用,节省不少的带宽,降低了网络负荷。同时站在用户的角度,这也节省了不少流量.

妈妈再也不担心我的流量不够用了


2.2.3 缓存弊端

弊端

由于客户端内存的限制,不能存放过多的数据,否则会降低本机的性能。


2.2.4 原理图

原理流程图


image.png

2.3 代理缓存

2.3.1 原理

原理

代理缓存既不属于客户端,也不属于服务器端,而是利用网络路由器请求信息。


2.3.2 应用场景

应用场景


用户手动设置浏览器代理

使用网页代理

网页代理将请求的URL通过他潜在网络定向到代理,所以用户无需手动配置。


2.3.3 原理图

原理流程图

image.png


2.4 网关缓存

2.4.1 原理

原理

网关缓存也是中间人,但不是由系统网络管理员出于节省带宽而部署,他们通常是由于网站站长自己部署的,这样可以让自己的网站更具有扩展性,可靠性和性能更好。


可以通过许多方法将请求路由到网关高速缓存,他就类似于负载平衡器。


2.4.2 缓存分类

缓存分类


强缓存:直接从本地缓存中取资源,不会和服务器通信

协商缓存:通过服务器来告知是否能用本地缓存。先和服务器通信,在从本地缓存中去;如果不可以使用本地缓存,就会返回最新的资源。


2.4.3 缓存与协议流程图


强缓存与协商缓存图


image.png

2.4.4 缓存原理图

原理流程图


image.png

3、Cookie


3.1 原理

1、 用户会提供包括用户名称在内的订单信息并且将其提交到服务器;

2、服务器向客户端回传相应的数据的同时,也会发送这些信息;


3、当客户端接收到来自服务器的响应之后,浏览器会将Cookie存放在一个统一的位置;


4、客户端再向服务器发送请求的时候,会把Cookie再次发回至服务器。


3.2 通行证

通行证解析


Cookie的内容是保存的一小段文本信息,这些文本信息组成一份通行证。

它是客户端对于无状态协议的一种解决方案。


3.3 原理图

原理流程图

image.png



4、Session


4.1 传输步骤

1、 服务器端程序运行过程中创建Session,并为该Session生成唯一的Session ID


2、服务器将该Session ID 发送到客户端


3、当客户再次发送请求的时候,就会把这个Session ID都带上


4、当服务器接收到请求之后就会依据Session ID找相应的Session,完成请求响应


4.2 原理图

原理流程图

image.png

5. Session 与Cookie区别


1.存储位置不同


Cookie:存放在客户端浏览器上;

Session:存放在服务器上。


2. 存储方式不同


Cookie:只能保管ASCII字符串,需要通过编码的方式存取Unicode字符或者二进制数据。运用Cookie难以实现存储略微复杂的信息。

Session:存取任何类型的数据。


3. 有效期不同


Cookie:设置其属性,长期有效

Session:关闭窗口,自动失效


4. 存储容量不同


Cookie:单个数据≤4KB,一个站点最多保存20个Cookie

Session:没有上限,但是出于对服务器的性能考虑,Session内不要存放过多的东西,并且设置Session删除机制。


5. 隐私策略不同


Cookie:对客户端是可见

Session:存储服务器,对用户透明


6. 服务器压力不同


Cookie:保存在客户端,所以不占用服务器资源

Session:保存在服务器端,所以会消耗大量内存


7.跨域支持不同


Cookie:支持跨域名访问。

Session:不支持跨域名访问。Session仅在它所在的域名内有效。


相关文章
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
103 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
72 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
Python测试淘宝店铺所有商品接口的详细指南
本文详细介绍如何使用Python测试淘宝店铺商品接口,涵盖环境搭建、API接入、签名生成、请求发送、数据解析与存储、异常处理等步骤。通过具体代码示例,帮助开发者轻松获取和分析淘宝店铺商品数据,适用于电商运营、市场分析等场景。遵守法规、注意调用频率限制及数据安全,确保应用的稳定性和合法性。
Socket.IO介绍,以及怎么连接测试Socket.IO接口?
Socket.IO 是一个用于浏览器和服务器间实时双向通信的库,支持低延迟消息传递、跨平台运行及自动重连。文章介绍了其特点与调试需求,并详细说明如何使用 Apifox 工具创建、连接、发送/接收 Socket.IO 事件,以及团队协作和调试技巧。掌握这些技能可提升实时应用开发效率与质量。
微信公众号接口测试实战指南
微信公众号接口测试是确保系统稳定性和功能完整性的重要环节。本文详细介绍了测试全流程,包括准备、工具选择(如Postman、JMeter)、用例设计与执行,以及常见问题的解决方法。通过全面测试,可以提前发现潜在问题,优化用户体验,确保公众号上线后稳定运行。内容涵盖基础接口、高级接口、微信支付和数据统计接口的测试,强调了功能验证、性能优化、安全保护及用户体验的重要性。未来,随着微信生态的发展,接口测试将面临更多挑战和机遇,如小程序融合、AI应用和国际化拓展。
接口测试工具攻略:轻松掌握测试技巧
在互联网快速发展的今天,软件系统的复杂性不断增加,接口测试工具成为确保系统稳定性的关键。它如同“翻译官”,模拟请求、解析响应、验证结果、测试性能并支持自动化测试,确保不同系统间信息传递的准确性和完整性。通过Apifox等工具,设计和执行测试用例更加便捷高效。接口测试是保障系统稳定运行的第一道防线。
API测试工具集合:让接口测试更简单高效
在当今软件开发领域,接口测试工具如Postman、Apifox、Swagger等成为确保API正确性、性能和可靠性的关键。Postman全球闻名但高级功能需付费,Apifox则集成了API文档、调试、Mock与自动化测试,简化工作流并提高团队协作效率,特别适合国内用户。Swagger自动生成文档,YApi开源但功能逐渐落后,Insomnia界面简洁却缺乏团队协作支持,Paw仅限Mac系统。综合来看,Apifox是国内用户的理想选择,提供中文界面和免费高效的功能。
【SpringMVC】——Cookie和Session机制
获取URL中参数@PathVarible,上传文件@RequestPart,HttpServerlet(getCookies()方法,getAttribute方法,setAttribute方法,)HttpSession(getAttribute方法),@SessionAttribute
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
202 11

热门文章

最新文章