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

news/2024/5/18 14:29:40 标签: 缓存, cookie, session, 接口

Cashe、Cookie与Session

  • 1、引言
  • 2、Cache
  • 3、Cookie
    • 3.1 原理
    • 3.2 通行证
    • 3.3 原理图
  • 4、Session
    • 4.1 传输步骤
    • 4.2 原理图
  • 5. Session 与Cookie区别

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


http://www.niftyadmin.cn/n/1757137.html

相关文章

接口测试开发之:一篇搞懂微服务测试中的参数传递

参数传递1、引言2、参数传递方式2.1 定义及方式2.2 Path Parameter(路径参数)2.3 Query Parameter(查询参数)2.4 Request Body参数2.5 Request Headers参数1、引言 在微服务最流行的年代,开发与测试是不可缺少的环节(这说的跟没说一样), 至于开发的环节…

接口测试开发之:一图搞懂HTTP协议与HTTPS协议的传输过程

HTTP与HTTPS协议1、HTTP协议1.1 协议1.2 原理1.2.1 客户端1.2.2 服务器端1.3 请求报文1.3.1 报文格式1.3.2 请求报文方法1.4 响应报文1.4.1 报文格式1.4.2 响应报文状态码2、HTTPS协议2.1 加密算法2.2 数字签名2.3 传输过程2.4 流程图今天整理了HTTP及HTTPS协议原理及流程&…

接口并发测试之:WebSocket从原理到代码实战,我没草率~

1. WebSocket协议详解1.1 WebSocket的由来1.2 WebSocket的原理2. WebSocket的请求2.1 WebSocket模块2.2 WebSocket请求与响应2.3 WebSocket请求实例3. WebSocket并发实战3.1 整理并发需求3.2 提取性能指标3.3 代码编写4.总结1. WebSocket协议详解 1.1 WebSocket的由来 在《接…

深聊性能测试,从入门到放弃之:APP性能测试有哪些关注点

APP性能测试关注点1、性能测试常见指标2、预期标准指定原则3、工具及方法4、不同角色关注点4.1 运维角度4.2 开发(架构)工程师角度4.3 用户角度4.4 测试工程师角度关于APP的性能测试,貌似在我的博客中写的并不多(谦虚的说法),为了能迎合更多的大(mei)佬(…

Python3,实用技巧之:三类(7种)拼接字符串方式

三类拼接字符串方式1、引言2、格式化类2.1 来自C的%方式2.2 format 拼接方式2.3 面向对象模板拼接3、拼接类3.1 常用的 方式3.2 类似元组的方式3.3 join方法4、插值类4.1 f-string方式5、总结1、引言 因为平时善于总结整理,所以,在写博客的时候&#x…

Python3,实用技巧之:列表4种去重方法

列表4种去重方法1、集合去重2、字典去重3、列表推导式4、字典保持原样输出1、集合去重 代码展示: # -*- coding: utf-8 -*-lis [11,33,55,55,66,77,77] se set(list) lis list(se) print(lis)运行结果: [33, 66, 77, 111, 55]2、字典去重 代码展示…

深聊性能测试,从入门到放弃之:性能测试基准与阶段

如何做性能测试1、引言2、性能测试内容2.1 基准测试2.2 日常压力测试2.3 峰值压力测试2.4 容量测试2.5 稳定性测试3、性能测试阶段3.1 测试确认3.2 确定通过标准3.3 测试设计3.4 测试环境准备3.5 测试执行及监控3.6 问题分析及调优3.7 测试报告4、总结1、引言 关于性能测试的话…

从古代八卦探究计算机的八进制

八进制,即八卦,是中国古代哲学体系中非常重要的一个概念,它被广泛应用于易经、道家、儒家等诸多领域。随着计算机科学的快速发展,人们开始思考:八进制是否可以应用到计算机上? 一、什么是八进制&#xff1…