接口测试开发之:一篇搞懂 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仅在它所在的域名内有效。


目录
相关文章
|
4天前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
30 11
|
21天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
50 1
|
23天前
|
存储 算法 C语言
用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容
本文探讨了用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容,旨在为开发者提供全面的指导和灵感。
37 2
|
1月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
60 3
|
1月前
|
存储 安全 搜索推荐
理解Session和Cookie:Java Web开发中的用户状态管理
理解Session和Cookie:Java Web开发中的用户状态管理
71 4
|
1月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
1月前
|
安全 测试技术 持续交付
云计算时代的软件开发与测试:高效、灵活、可扩展
云计算时代的软件开发与测试:高效、灵活、可扩展
|
2月前
|
存储 安全 数据安全/隐私保护
Cookie 和 Session 的区别及使用 Session 进行身份验证的方法
【10月更文挑战第12天】总之,Cookie 和 Session 各有特点,在不同的场景中发挥着不同的作用。使用 Session 进行身份验证是常见的做法,通过合理的设计和管理,可以确保用户身份的安全和可靠验证。
28 1
|
2月前
|
人工智能 监控 测试技术
云应用开发平台测试
云应用开发平台测试
77 2
|
2月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
74 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
下一篇
DataWorks