《High Performance Web Sites》之 Rule 4 读书笔记

前面三章说的都是直接提速,这一章说的是压缩网页内容从而间接提速。 提速指数: 压缩后传输内容缩小:70 %,在 900 Kbs (理论最大下载速度 112.5 KB/s)的带宽下加速 50% 多一些。 工作原理(下图): image image 值得压缩的对象(相较服务器 CPU 等资源开销而言): 1、HTML 文档( Apache 默认开启压缩 HTML); 2、所有其它大于 1 ~ 2 Kb 的文件; 配置方法: 1、Apache 1.3 的 mod_gzip 模块(mod_gzip_on、mod_gzip_item_include、mod_gzip_item_exclude); 2、Apache 2.x 的 mod_deflate 模块 (尽管叫做 mod_deflate ,它依然是用 gzip 的方法压缩的); 注意事项: 1、Proxy Caching 支持 gzip 的浏览器通过代理服务器访问完网站后,再由一个不支持 gzip 的浏览器通过同一个代理服务器访问同一个网站,会发生什么情况?读者还可以自己想类似的问题,解决的办法是:image 这样代理服务器就会缓存两个版本,一个是 gzip 压缩的,一个不是。 2、Edge Cases 超过 90% 的浏览器宣称支持 gzip,然而早期的一些(例如未打补丁的 IE 6)是有 bug 的,这时如果通过代理获取到的 gzip cache 可能显示不正确。 这时有以下三种解决办法:(1) 如果访客较少并且浏览器可以规定 —— 直接使用“Vary: Accept-Encoding”的办法;(2) 如果网站的带宽紧张 —— 同前,节约带宽; (3) 如果有大量用户和余裕带宽并且追求高质量 —— 压缩并使用“Cache-Control: Private”,这将禁用代理但也避免了 Edge Cases 。