码迷,mamicode.com
首页 > Web开发 > 详细

高性能网站建设-4压缩组件

时间:2018-11-22 21:42:23      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:mod   ssi   决定   got   配置   磁盘   无法   文本   --   

1.使用gzip编码来压缩HTTP响应包

- 这是减小页面大小最为简单的技术,但影响是最大的。

1.1 从HTTP1.1开始,Web客户端可以通过HTTP请求中的Accept-Encoding头来表示对压缩的支持。

  Accept-Encoding:gzip,deflate

1.2Web服务器通过响应中的Content-Encoding头来通知web客户端。

Content-Encoding:gzip

1.3 gzip是目前最流行和最有效的压缩方法 。有很多浏览器支持gzip却不支持deflate。

2.压缩什么

2.1实际上,值的压缩的内容包括XML和JSON在内的任何文本响应。

2.2图片和PDF不应该压缩。为什么?因为本来已经被压缩了,试图压缩只会浪费CPU资源,还有可能增大文件大小。

2.3压缩的成本--1.服务器端花费CPU来完成压缩2.客户端对压缩文件进行解压缩

2.4经验:通常对大于1KB或2KB的文件进行压缩。

2.5压缩通常能将响应的数据量减少将近70%

3.配置

3.1为什么仅仅介绍Apache?因为:Apache是Internet上最流行的WEB服务器。

3.2配置gzip使用的模块取决于Apache的版本----Apache1.3使用mod_gzip,而Apache2.x使用mod-delfate。

3.3 很多Web主机服务都默认为text/html打开了mod_gizp。最重要的配置修改就是需要明确压缩脚本和样式表。

3.4Apache1.3--mod_gzip

 - Apache 1.3的gzip压缩由mod_gzip模块提供。  
- mod_gzip_on  启用mod_gzip
- mod_gzip_item_include;mod_gizp_item_exclude
- gzip命令行提供了一个选项,用于控制压缩的程度。
- mod_gzip提供了选项,可以将保存压缩过的内容自动保存在磁盘上,并在原内容变化时更新压缩过的内容。mod_gzip_can_negotiate和mod_gzip_update_static

3.5Apache2.x --mode_deflate

- 尽管模块名字是这样的,但是用gzip进行压缩。
- mod_deflate包含了一个用于控制压缩级别的指令--Deflate CompressionLevel

4代理缓存

4.1当浏览器通过代理来发送请求时,情况会变得很复杂。

- 解决方案:在Web服务器的响应中,添加Vary头。--需要在服务器的Vary响应头中包含Accept-Encoding 。 Vary:Accept-Encoding。
- 在默认情况下,mod_gzip会像所有响应添加Vary:Accept-Encoding头,以驱使代理执行正确的操作。

5边缘情形

5.1今天大约90%的通过浏览器进行的Internet通信都需要使用gzip。

5.2浏览器白名单方式:只为已经证实过支持压缩的浏览器提供压缩内容。例如:IE 6.0及以后版本、Mozilla 5.0及以后版本。

- 在Apache1.3中,使用User-Agent来指定浏览器白名单。
- 在Apache2.x中,使用BrowserMatch指令
- 最佳做法是将User-Agent作为代理的另一种评判标准,添加到Vary头中。 Vary:Accept-Encoding,User-Agent

5.3 最好使用Cache-Control:private,为所有浏览器禁用代理缓存。→会增加带宽开销,因为代理无法缓存你的内容。

6平衡压缩与代理支持的决定

6.1网站用户很少,并且处于一个小圈子中。压缩内容并使用Vary:Accept-Encoding。→减小组件大小、利用代理缓存

6.2更注意带宽开销--与上面的方法一样。

6.3有大量的、多变的用户群,并且能够应付较高的带宽开销,并享有高质量的名声。压缩内容并使用Cache-Control:Private。→压缩内容,禁用代理缓存,避免了边缘情形。

7.压缩通常能将内容压缩约70%,但这会随着空白及重复字符的数量而变化。

高性能网站建设-4压缩组件

标签:mod   ssi   决定   got   配置   磁盘   无法   文本   --   

原文地址:https://www.cnblogs.com/xuzhengguo/p/9997473.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!