博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTTP 笔记与总结(8)HTTP 与内容压缩
阅读量:5298 次
发布时间:2019-06-14

本文共 1496 字,大约阅读时间需要 4 分钟。

以环球网的一篇新闻为例,抓包图:

(Powered-By-ChinaCache:HIT from 060120b3g7.16 表示当前页面不是来自环球网的主服务器,而是来自中国的缓存服务器节点,HIT 表示命中,from 表示命中了哪一台服务器)

 

Content-Length:8306

当把当前页的源代码复制到 html 文件中,会发现文件的大小大于 Content-Length 显示的字节数。

原因在于 Content-Encoding:gzip 这个响应头信息。

为了加快网页在网络上的传输速度,服务器对主体信息进行压缩,例如 gzip 压缩、deflate 压缩、compress 压缩(Linux 服务器下)、google Chrome 的 sdch 压缩。

服务器对网页进行压缩,压缩过的内容返回给客户端,Content-Length 是压缩后的长度,客户端接受以后进行解压缩,再进行页面的渲染。

 

在 Apache 上打开压缩模块(启用压缩功能)

① 在 httpd.conf 中开启 deflate 模块或 gzip 模块

 

② 在 httpd.conf 文件中添加:

DeflateCompressionLevel 6 #压缩率,可选1-0, 6是建议值AddOutputFilterByType DEFLATE text/plain #压缩文本文件AddOutputFilterByType DEFLATE text/html #压缩 html 文件AddOutputFilterByType DEFLATE text/xml #压缩 xml 文件AddOutputFilterByType DEFLATE text/css #压缩 css 文件AddOutputFilterByType DEFLATE text/javascript #压缩 js 文件AddOutputFilterByType DEFLATE application/xhtml+xmlAddOutputFilterByType DEFLATE application/xmlAddOutputFilterByType DEFLATE application/rss+xmlAddOutputFilterByType DEFLATE application/atom_xmlAddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/x-httpd-php #压缩 php 文件AddOutputFilterByType DEFLATE image/svg+xml

因为压缩会消耗 CPU 资源,另外比如图片/视频的压缩效果不明显,因此要指定文件类型来压缩,一般压缩文本格式的文件。

 

【例】

cache-01.html

压缩之前:

Content-Length:187

 

压缩之后:

Content-Length:152

 

 

在 HTTP 请求头信息中,Accept-Encoding 会表明当前浏览器(客户端)支持的压缩格式,这种头信息一般又叫做协商头信息:

 

 

 在做采集功能时,可以不发送 Accept-Encoding 信息,这样采集到的直接是源码,也可以采集 gzip ,提高速度,再用 php 解压 gzip 的内容。

 

 

转载于:https://www.cnblogs.com/dee0912/p/4658581.html

你可能感兴趣的文章
033 Search in Rotated Sorted Array 搜索旋转排序数组
查看>>
zabbix 报错汇总
查看>>
转移zencart网站时,后台出现空白页面
查看>>
leetcode254- Factor Combinations- medium
查看>>
STM32: 实现ADVANCED ENCRYPTION STANDARD(AES) – 128-BIT加密算法
查看>>
Linux下简单的取点阵字模程序
查看>>
二叉树基础
查看>>
Python字符集
查看>>
第三章 共享程序集和强命名程序集
查看>>
思与在,为何没有行
查看>>
[WPF]绑定到界面的数组不支持调度线程以外对其更改的办法
查看>>
javascript 取得地址参数
查看>>
bzoj1570: [JSOI2008]Blue Mary的旅行
查看>>
%type、%rowtype 、record区别
查看>>
最长可重叠的重复子串
查看>>
回调函数【C】
查看>>
ReportingService语法
查看>>
GridView中CheckBox、CheckBoxField取值的方法集
查看>>
Java四种线程池的使用
查看>>
关于 MySQL LEFT JOIN 你可能需要了解的三点(zhuan)
查看>>