• 1
  • 2
分享

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 原理图

原理流程图

1.png

2.3 代理缓存

2.3.1 原理

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

2.3.2 应用场景

用户手动设置浏览器代理

使用网页代理

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

2.3.3 原理图

原理流程图

2.png

2.4 网关缓存

2.4.1 原理

原理

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

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

2.4.2 缓存分类

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

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

2.4.3 缓存与协议流程图

强缓存与协商缓存图

3.png

2.4.4 缓存原理图

原理流程图

4.png

3、Cookie

3.1 原理

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

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

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

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

3.2 通行证

通行证解析

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

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

3.3 原理图

原理流程图

5.png

4、Session

4.1 传输步骤

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

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

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

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

4.2 原理图

原理流程图

6.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发送Post请求报400,入参为JSON;Postman截图二、分析1、Postman请求并没有请求到后台Api(由于语法错误,服务器无法理解请求);2、入参出错范围:cookie、header、body、form-data、x-www-form-urlencoded、属性未加引号、Url路径有中文等;3、参数Map、List、Array 对应 [ ]、{ } 符号;4、另外有说法:Post请求的参数过大(基本上没这种可能);5、总体分析:客户端发送到服务器的数据流没有遵守规则。三、解决(常见几种)1、检查Postman入参是否与实体类一 一对应(大小写、类型、参数个...
            0 0 6026
            分享
          • Dify 的朋友们,很高兴告诉大家,我们刚刚发布了 V0.3.9 版本,在这个版本中有两个重要的新特性和大家同步:Dify 已接入 Antropic 的 Claude2、Claude-instant 模型。这意味着:你可以输入 100K token 超长上下文,相当于几百页的文档甚至是一本书!已支持在网页嵌入你的 AI 应用。这意味着,你能够在几分钟内就可以为你的官方网站创建一个具备你业务数据的 AI 智能客服。让我们一起来看看吧!接入 Antropic,解锁与 AI 超长对话限制Antropic 在数天前发布了新的 Claude 2 模型。它支持用户输出 100K token 的上下文,相当...
            0 0 1072
            分享
          • 一、大数据:大数据是一个大的数据集合,通过传统的计算技术无法进行处理。这些数据集的测试需要用各种工具、技术、框架进行处理。大数据涉及数据创建,存储、检索、分析,而且它在数量、多样性、速度方面都很出色。二、大数据的测试类型:验证其数据处理、性能和功能测试是关键;处理:批量、实时、交互;数据质量测试:字段一致性、准确性、重复性、有效性、数据完整性性能测试。三、大数据的测试步骤:step1:数据阶段验证:pre-Hadoop阶段,数据预测试阶段来自各方面的数据资源应该被验证,来确保正确的数据被加载进系统;将源数据与推送到Hadoop系统中数据进行比较,确保他们匹配;验证正确的数据被提取并加载到HDF...
            15 15 888
            分享
          •   测试分析与设计  测试是一门精细的学科,新人同学很容易有的误区是认为做测试主要就是编写测试用例和执行测试用例,进阶能力是写自动化脚本或研发工具。而实际上,测试人员最难修炼的是测试分析能力,测试分析能力是衡量一位测试同学是否专业的分水岭。分析除了使用方法,还需要有对业务、经验、质量的深度理解。自动化或工具实际是对分析和设计结果的一种实现,分析和设计的有效会决定实现的效果。  分析与设计过程  测试分析要从业务需求最开始就要介入,流程覆盖业务整个生命周期。在做分析的过程要想清楚,整体后续的设计怎么做。  测试分析可总结为四步:  ·建模 - 输出业务/系统流程 (分析:业务流程 - 系统流程)...
            0 0 1130
            分享
          • 1、什么是接口?接口就是API(application programming interface),意思是应用程序编程接口。接口本质上是程序开发的函数和方法,提供参数和返回值。2、什么是接口测试? 接口测试是测试系统组件间接口的一种测试,接口测试主要用于检测外部系统和内部系统之间以及各个子系统之间的交互点。测试的重点是检查数据的交换、传递和控制管理的过程,以及系统间的相互逻辑依赖关系等。 3、接口组成的要素有哪些?接口访问的地址、请求的方法、参数、返回值(1)接口访问的地址 协议://IP地址或域名:端口号/应用名/功能名(2)请求的方法 get、post等(3...
            9 9 2344
            分享
      • 51testing软件测试圈微信