七、HTTP协议的压缩及URL Encode(涉及Fiddler中的TextWizard工具)
一、HTTP压缩的过程
1.概念:HTTP压缩即Web服务器和浏览器之间压缩传输“文本内容”的方式。HTTP采用通用的压缩算法(如:gzip),来压缩HTML、JavaScript、CSS文件,有助于减少网络传输的数据量,提高了浏览器网页加载显示速度。
下面图示了解一下HTTP压缩过程:
简单陈述:
Web请求中带上压缩方法Accept-Encoding项的值;服务器接到请求后,先生成包含Content-Length、Content-Type的Response;然后,通过接收的Accept-Encoding值来压缩文件数据,最后将Content-Encoding值放在响应头中一起返回给浏览器客户端。
Fiddler截图:
HTTP压缩最直接的效果:节省数据传输,提高性能;在Fiddler的Response的Transfromer选项卡里面,可以直接查看文件解压前大小、解压后大小;
解压前:
解压后:
内容编码类型列表(gzip、compress及deflate编码均是无损压缩,不会导致信息损失;gzip通常效率最高,使用最广泛):
类型名称 | 释义 |
Content-Encoding:gzip | 表示实体采用GNU zip编码 |
Content-Encoding:compress | 表示实体采用UNIX的文件压缩程序 |
Content-Encoding:deflate | 表示实体是用zlib的格式压缩的 |
Content-Encoding:identity | 表示没有对实体进行编码;当没有Content-Encoding选项时,默认就是这种; |
补充:1.JPEG这类文件用gzip压缩效果不理想,gzip占用了部分服务器和客户端的CPU;
2.gzip压缩的基本方式:简单的说是,gzip压缩是在一个文本文件中找出类似的字符串,并临时替换它们,从而使整个文件变小。所有gzip方式对Web非常合适,因为HTML、CSS文件都含有大量重复的字符串,如:标签、空格;
3.HTTP请求也是可以编码的,但是浏览器一般不会对请求进行编码;若请求被编码,则在请求的Header中,Transport中会有Content-Encoding的值;HTTP内容压缩是HTTP内容编码的一种,不可混淆;
二、URL Encode介绍
URL Encode(URL 编码)就是把所有非英文字母、数字字符均替换成百分号(%)后加两位十六进制数(如:空格的编码:%20)。简单举例,访问https://www.baidu.com,搜索两个字:网页
POST中的参数包含汉字也会被编码,这里就不截图了。
三、Fiddler中的TextWizard
Fiddler工具栏的Tool---->TextWizard工具可以帮助完成对数据的编码、解码;是一个不错的工具;