此文档仅供HTTP初学者参考。
/**
HTTP协议 内容压缩
可以提高系统性能,大网站必备
**/
1.打开163的新闻,有如下的响应头信息
Content-Encoding:gzip
Content-Length:40955
但是保存其源码的时候,得到的文本文件大小是 150k
content-length代表的是返回主体的长度,但是此刻是不一样的
原因就是 content-Encoding:gzip ,为了提高网页在网络上的传输速度,服务器对主体信息进行压缩
常见的压缩有gzip压缩 deflate压缩 compress压缩(linux上的) sdch(google chrome)
压缩的过程:
服务器返回的是压缩内容 ==> 客户端接收到压缩文件,再进行解压,在渲染页面
2.在Apache服务器启动压缩功能
1.在apache的主体文件 httpd.conf 中
去掉 default_module 前的 #
#LoadModule deflate_module modules/mod_deflate.so
2.接下来并不是写在 .htaccess 文件中
在conf文件中写如下
<infomodule mod_deflate.e>
DeflateConpressionLevel 6 #压缩级别为6,有1-9 推荐为6
AddOutputFilterByType DEFLATE text/plain 压缩文本文件
AddOutputFilterByType DEFLATE text/html 压缩html文件
AddOutputFilterByType DEFLATE text/xml 压缩xml文件
</infomodule>
因为压缩也是要耗CPU资源的,而且 图片/视频等文件,压缩效果并不好,所以我们有选择性的压缩
所以我们一般压缩文本格式的文件。(html js xml css 等等...)
3.浏览器发送请求的时候,允许发送以下代码,
Accept-Encoding:gzip, deflate, sdch
与服务器协商----协商头信息。说明chrome浏览器支持gzip压缩 deflate压缩 sdch压缩
而火狐浏览器只支持gzip压缩和deflat
所以,当我们采集信息的时候,可以不发送Accept-Econding信息,这样直接采集到的直接是源码,也可以采集gzip提高速度,再利用php解压gzip内容