接口测试开发之:一篇搞懂 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 原理图

原理流程图
在这里插入图片描述

2.3 代理缓存

2.3.1 原理

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

2.3.2 应用场景

应用场景

  • 用户手动设置浏览器代理
  • 使用网页代理

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

2.3.3 原理图

原理流程图
在这里插入图片描述

2.4 网关缓存

2.4.1 原理

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

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

2.4.2 缓存分类

缓存分类

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

2.4.3 缓存与协议流程图

强缓存与协商缓存图
在这里插入图片描述

2.4.4 缓存原理图

原理流程图
在这里插入图片描述

3、Cookie

3.1 原理

1、 用户会提供包括用户名称在内的订单信息并且将其提交到服务器;
2、服务器向客户端回传相应的数据的同时,也会发送这些信息;

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

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

3.2 通行证

通行证解析

Cookie的内容是保存的一小段文本信息,这些文本信息组成一份通行证。
它是客户端对于无状态协议的一种解决方案。

3.3 原理图

原理流程图

在这里插入图片描述

4、Session

4.1 传输步骤

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

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

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

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

4.2 原理图

原理流程图在这里插入图片描述

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仅在它所在的域名内有效。

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Carl_奕然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值