【详细解读】HTTP协议性能特征及性能测试方法

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD
如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。
😊 座右铭:不想当开发的测试,不是一个好测试✌️。
如果感觉博主的文章还不错的话,还请点赞、收藏哦!👍

通读本篇文章,您将获得以下内容

一 HTTP 传输过程中的数据压缩

HTTP 头信息中用相关字段 Accept-Encoding 来标识是否使用某种压缩格式,只有客户端在 HTTP 请求头里面指明可以支持指定的压缩时,服务端才返回压缩的内容,避免客户端无法解析的情况。数据压缩可以提升响应时间。(大部分网站都是开启的
在这里插入图片描述
需要注意的是,HTTP 传输中的压缩是一个双向的设置,一方面是客户端声明可以接受压缩后的内容,另一方面是服务器也要开启压缩相关的配置。

二 客户端的缓存

客户端缓存不仅可以提高响应时间还可以节省带宽。
用户访问网页时,针对一些静态内容,如图片、JS、CSS等,可能和上次访问的内容没有任何变化,如果每次都要反复从服务器拉取这些内容,则会浪费带宽,对于客户端的响应时间也有影响。因此客户端缓存油然产生。

接下来我们举个例子:假如访问 qq.com首页

第一次访问(在无缓存的情况下,所有的元素都需要从服务端拉取)
在这里插入图片描述

第二次访问:在不清除缓存的情况下访问。(直接刷新下网页即可)。(补充:快捷方式 Command+R:刷新当前页面;Command+Shift+R:强制刷新当前页面。)

我们会发现在Size栏目中,有很多标识 “memory cache”,表示本次访问这些资源都是直接从本地缓存文件读取的,而不是通过 HTTP 网络请求获取的。
在这里插入图片描述
我们点开一个JS文件
在这里插入图片描述
我们可以对比上面这两个图片,同样的 js 文件,一个返回 200,一个返回 304。304 响应码表示服务端接收到浏览器的请求,判断后认为服务端最新的该文件版本和客户端已有一致的,于是告诉客户端不需要再传输完整的内容了,可以直接用本地的版本。虽然客户端发起了请求,但是服务端只需要通过 304 简单应答,不必重新传输文件的内容,同时也起到了缓存的目的。

另外,在第二次访问的消息头中,我们看到
在这里插入图片描述

If-Modified-Since: Wed, 27 Jan 2021 09:11:32 GMT,这个时间戳是第一次访问 custom_ed041a23.js 时响应头中的 Last-Modified 字段的内容。就是说第一次收到响应时,将对应的信息存储起来,等到下次再请求这个同样的URL时,客户端发现缓存因为过期不能直接使用了(但是不会立即删除缓存文件),而会把时间戳回传给服务器,告诉服务器说本地有这个版本的文件。这样服务端收到这个信息后可以对比给出合适的响应。

在Mac中可以查看Chrome的缓存文件,目录如下:/Users/xiaozeng/Library/Caches/Google/Chrome/Default/

在这里插入图片描述

三 常用Web性能测试工具

3.1 PageSpeed分析工具

进入首页后https://pagespeed.web.dev/,输入要访问的地址即可开始测试分析。

在这里插入图片描述

3.2 WebPageTest

这是一个在线工具(https://www.webpagetest.org/),可以统计访问每个网址的时间。登陆工具后,输入待测网址即可开启测试。等待一会后就可以看到结果。

在这里插入图片描述

单个请求的详细时间,包括DNS查询时间、链接建立时间等。

在这里插入图片描述

3.3 Mac中查看Android设备浏览器性能

首先需要在Chrome浏览器里安装一个扩展程序:ADB,大概就长下图这个样子

在这里插入图片描述
安装完成后将小图标点亮。
在这里插入图片描述
通过 USB 线连接手机和电脑,在手机上打开 Chrome 浏览器,(必须是 Chrome 才可以识别),在 Mac Chrome 浏览器中输入 chrome://inspect/#devices,然后点击 inspect,就可以打开 Chrome 的开发者工具,此时,手机上的操作都会反映到这个开发者工具上面。就可以直接在 Mac Chrome 浏览器中查看某个请求到网络耗时分析。
在这里插入图片描述

3.4 iOS打开网页调试器

如果在Mac中调试Safari浏览器,首先需要在iOS设备上开启“网页检查器”。(设置——Safari浏览器——高级)
在这里插入图片描述
通过数据线连接手机和电脑,打开 Mac 中 Safari 浏览器,在工具栏选择对应设备
在这里插入图片描述
即可出现当前手机Safari浏览器上的信息
在这里插入图片描述

如果只是简单地使用工具,其实门槛是非常低的,更重要的是数据的解读和分析,而这方面依赖于对具体技术细节的理解,以及对被测产品的架构和部署等方面的深入了解。

  • 40
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
IP/ICMP协议分析实验主要是通过对IP(Internet Protocol)和ICMP(Internet Control Message Protocol)协议的深入研究和分析来探讨网络通信中的数据传输和控制机制。 在这个实验中,首先需要了解IP协议的基本功能和作用。IP协议是一种网络层协议,它负责将数据包从源主机传输到目标主机。IP协议使用IP地址来标识网络中的主机和路由器,通过路由选择算法来确定数据包的最佳路径,并提供分片和组装等功能,以适应不同网络环境的需求。 接下来,实验需要对ICMP协议进行深入分析。ICMP协议是IP协议的一个补充,它主要用于网络设备之间的控制和错误消息的传递。ICMP协议可以用来检查主机是否可达、测量网络延迟和丢包率等网络性能指标,并提供错误报告和诊断功能。 在实验过程中,可以使用一些网络分析工具,如Wireshark等,来捕获和分析网络数据包。通过观察和解读数据包的头部信息,可以深入了解IP协议和ICMP协议的工作原理和机制。 此外,实验中还可以进行一些实际操作,如发送ping命令来测试网络主机的可达性和延迟,以及模拟网络故障来观察ICMP错误消息的传递和处理过程。 通过这个实验,我们可以更加深入地理解和学习IP/ICMP协议在网络通信中的重要性和作用。同时,实验还可以帮助我们掌握网络分析和故障诊断的技巧,提高网络管理和维护的能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小曾同学.com

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

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

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

打赏作者

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

抵扣说明:

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

余额充值