川石软件测试
一、什么是HTTP压缩?
HTTP压缩采取通用的压缩算法如gzip等压缩HTML、JavaScript或CSS文件。

1.GZIP是一种数据格式,默认且目前仅利用deflate算法压缩data部分;Gzip是一种盛行的文件压缩算法,现在的运用十分广泛,尤其是在Linux平台。当运用Gzip压缩到一个纯文本文件时,效果是非常明显的,大约可以减少70%以上的文件大小。这取决于文件中的内容。
2.DEFLATE压缩与解压的源代码可以在自由、通用的压缩库zlib上找到。
更高压缩率的DEFLATE是7-zip所实现的。AdvanceCOMP也利用这种实现,它可以对gzip、PNG、MNG以及ZIP文件进行压缩从而 得到比zlib更小的文件大小。在Ken Silverman的KZIP与PNGOUT中利用了一种更加高效同时哀求更多用户输入的DEFLATE程序。
deflate是一种压缩算法,是huffman编码的一种加强。
deflate与gzip解压的代码险些相同,可以合成一块代码。
http压缩可以分为两种,一种是客户端压缩,还有一种是做事端压缩。
先看下 做事端压缩。
二、用fiddler找到一个response里Content-Encoding: gzip参数为gzip的url
(彷佛做事端用gzip压缩过的比较难找,别捉急,后面会讲到怎么去找)
川石软件测试
request:client里参数Accept-Encoding: gzip, deflate(解释客户端支持解压gzip,如右上图)
response:Content-Encoding: gzip(解释做事端传过来的格式是gzip格式,如右下图)
很显然做事端返回的gzip格式显示的是乱码
三、HTTP压缩事情事理
川石软件测试
1. 浏览器发送Http request 给Web做事器, request 中有Accept-Encoding: gzip, deflate。 (见告做事器, 浏览器支持gzip压缩)
2. Web做事器接到request后, 天生原始的Response, 个中有原始的Content-Type和Content-Length。
3. Web做事器通过Gzip,来对Response进行编码, 编码后header中有Content-Type和Content-Length(压缩后的大小), 并且增加了Content-Encoding:gzip. 4. 把Response发送给浏览器。
5. 浏览器接到Response后,根据Content-Encoding:gzip来对Response 进行解码。 获取到原始response后, 然后显示出网页。
四、fiddler如何仿照解赛过务端response数据
先打开测试论坛主页http://120.25.145.237/upload/forum.php2.fiddler先清屏(命令行输入cls,回车)
川石软件测试
3.crtl+f5刷新,你懂得(上章已经讲过)
4.找到最上面那个url(论坛主页)
5.点开查看,如下图
川石软件测试
Raw:Transfer-Encoding: chunked(很显然,做事端传过来数据没加密)
6.点开Transformer区域,如下图
川石软件测试
7.点击黄色区域解码后,再回到Raw,创造response编码格式已经变成html了
川石软件测试
(注:fiddler比较人性化地方:当你点左侧url时,如果response有压缩加密,fiddler会在response上方区域显示黄色栏。也可以点工具栏左上方\公众Decode\"大众按钮,这样会全部自动解压)
五、fiddler如何仿照做事端response数据压缩
重复上面操作,到第六步后,把勾去掉,如图川石软件测试
2.此时HTTP Compression区域是可选状态了,选中GZIP项后,会创造response body字节数变小了很多
川石软件测试
3.回到Raw界面,Content-Encoding: gzip,下方显示乱码了,解释已压缩成功
川石软件测试
六、做事端压缩格式:
可以参考上面第一张图,赤色区域
HTTP Compression
None 无压缩处理
gzip 表明实体采取GNU zip编码
deflate 表明实体是用zlib的格式压缩的
其它的没研究过
七、客户端压缩
有时候客户端提交的表单数据较大时,也可以先再客户端压缩后,再发给做事器,事理跟做事端压缩差不多,就不多说了。
八、压缩好处
比拟上面两张图,压缩类型选择None时候
response body:69,122 bytes
压缩类型选择gzip时候
response body :12,285 bytes
可以算下压缩比例为18%旁边,能节省80%旁边流量,很明显最大的好处便是给用户省流量,给做事端节省带宽。使网页加载速率加快,节省流量,改进用户的浏览体验。(对付电脑用户来说没什么,但是对付手机党,流量伤不起啊!
)
九、压缩缺陷
既然压缩有这么多好处,那么为什么不是所有的都采取压缩呢。大概压缩几条http要求没太大影响,当要求个数是几百上千时,如果每次都压缩,会给客户端和做事端造成较大包袱(毕竟会经由压缩解压两道工序)。以是一样平常页面要求数据较大时,采取压缩是很有必要的。
十、流量测试
常常有小伙伴问:流量怎么测?用什么工具?
当问这个问题的时候,估计你平常测试也没关注过流量,直到有一天你们客户反馈耗流太大。然后领导把难题丢给你:嘿,你不是做测试的吗?去把流量测下。于是你就各种乞助,终于找到一个测试流量工具,创造确实花费了很多流量,然后你又把难题甩给开拓。开拓也看了半天,找不到头绪,然后见告你,这个没办法,便是要花费这么多流量。(谁让你拿不出有力证据呢)
看完这篇后,你还在找工具测流量么,只须要抓包,找到罪魁罪魁,定位到某个url要求。然后见告你们开拓,你这条要求耗流太大,没做压缩处理。接下来,你就可以坐等开拓跪舔你吧~~~~
哈哈,本日的课程就结束了,还没关注的同学快快关注吧,每天都有精彩的内容等着你哦!