HTTP协议分析系列(九)------http协议与内容压缩
2017-01-22 15:57
381 查看
观察我们打开163的一篇新闻,看到如下相应头信息,看到如下响应头信息,注意,Content-Length
同时,我们点击右键保存源码,保存的文件大小
思考:Content-Length在之前的学习中,代表返回的主体长度
但此处为什么返回的主体长度和content-length不一致呢?
原因在于Content-Encoding:gzip这个响应头信息在作用
原理:为了提高网页在网络上的传输速度,服务器对主体信息进行压缩。如常见的gzip压缩,deflate压缩,compress压缩,以及google chrome正在推的sdch压缩。
压缩的过程是这样:
刚才那个情况的原因,服务器对页面进行了压缩content-length是“压缩”后的长度
如何在apache启用压缩功能?
1.开启deflate模块,或gzip模块。
2.在conf文件中写如下代码
3.为什么要指定文件类型来压缩?
答:压缩也是要耗CPU资源的,图片/电影/视频等文件,压缩效果也不好。
一般是压缩文本格式的文件。
[php]
view plain
copy
<ifmodule mod_deflate.c>
DeflateCompressionLevel 6
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE image/svg+xml
</ifmodule>
问:服务器怎么知道我们的浏览器支持gzip的?
答:客户端允许发一个accept-Encoding头信息,与服务器协商
这个例子可以看出chrome浏览器这三种类型
火狐只支持两种压缩方式
小技巧:当我们在采集时,可以不发送Accept-Encoding信息,这样采集到的直接是源码,当然也可以采集gzip(提高速度),再用gzip解压内容。
同时,我们点击右键保存源码,保存的文件大小
思考:Content-Length在之前的学习中,代表返回的主体长度
但此处为什么返回的主体长度和content-length不一致呢?
原因在于Content-Encoding:gzip这个响应头信息在作用
原理:为了提高网页在网络上的传输速度,服务器对主体信息进行压缩。如常见的gzip压缩,deflate压缩,compress压缩,以及google chrome正在推的sdch压缩。
压缩的过程是这样:
刚才那个情况的原因,服务器对页面进行了压缩content-length是“压缩”后的长度
如何在apache启用压缩功能?
1.开启deflate模块,或gzip模块。
2.在conf文件中写如下代码
3.为什么要指定文件类型来压缩?
答:压缩也是要耗CPU资源的,图片/电影/视频等文件,压缩效果也不好。
一般是压缩文本格式的文件。
[php]
view plain
copy
<ifmodule mod_deflate.c>
DeflateCompressionLevel 6
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE image/svg+xml
</ifmodule>
问:服务器怎么知道我们的浏览器支持gzip的?
答:客户端允许发一个accept-Encoding头信息,与服务器协商
这个例子可以看出chrome浏览器这三种类型
火狐只支持两种压缩方式
小技巧:当我们在采集时,可以不发送Accept-Encoding信息,这样采集到的直接是源码,当然也可以采集gzip(提高速度),再用gzip解压内容。
相关文章推荐
- HTTP协议分析系列(九)------http协议与内容压缩
- http协议与内容压缩
- http协议与内容压缩
- http协议与内容压缩
- Http协议(页面内容压缩)
- php压缩gzcompress和解压gzuncompress字符串的方法,适用于大数据的内容场景
- 迁入阿里云后:解决了一个IIS动态内容压缩的问题
- http client对post内容gzip压缩和server端解压接收
- Response.Filter属性:网站内容的GZIP压缩
- 基于WCF的RESTFul WebAPI如何对传输内容实现压缩
- HTTP与内容压缩:
- 使用7za压缩zip包的命令,当中屏蔽部分文件夹内容
- 查看一个归档或压缩文件的内容而无需解压它
- android利用Http协议获取网页文本内容的方法
- android利用http协议下载网页内容到指定位置的方法
- 爬取网页时自动获取网页编码信息,并对特殊的乱码页面(压缩过的网页内容)用gzip进行解码。
- Http协议实现数据的压缩
- 通过Response.Filter属性实现网站内容的动态GZIP压缩
- HTTP 传输内容的压缩
- HTTP协议 (三) 压缩