HTTP协议的压缩及URL Encode

一、HTTP压缩的过程
1.概念:HTTP压缩即Web服务器和浏览器之间压缩传输“文本内容”的方式。HTTP采用通用的压缩算法(如:gzip),来压缩HTML、JavaScript、CSS文件,有助于减少网络传输的数据量,提高了浏览器网页加载显示速度。

简单陈述:

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)。简单举例,访问地址,搜索中文"测试“

POST中的参数包含汉字也会被编码,这里就不截图了。

三、Fiddler中的TextWizard,快捷键(Ctrl+E)
Fiddler工具栏的Tool---->TextWizard工具可以帮助完成对数据的编码、解码;是一个不错的工具;

原文地址:https://www.cnblogs.com/zhaoyiguang/p/fiddler.html