Amazon的S3和CloudFront并不会检测客户端是否支持gzip压缩,也就不会根据需要实时压缩内容来提供给客户端。
也是David Yin所说的,默认Amazon CloudFront的服务器是没有gz压缩的。
使用gz压缩,可以减少所下载文件大小,并且减少下载时间,加快页面载入速度。还有一个就是可以减少带宽。
以本站为例,我压缩了三个文件。
压缩前一共是38.9KB,gzip压缩后一共是10.8KB。
其实在做gzip压缩前,已经做过一次minify了,没有做minify之前,一共有62KB.
这三个文件是本站访问最多的三个,就是一个js文件,两个css文件。
最终的压缩量是从62KB到10.8KB。
好了下面介绍一下如何实现这个压缩。
首先把原生的css文件,用Yahoo Compressor工具对该文件进行minify。
接着,使用开源免费的压缩工具7-zip,对其进行压缩,选择gzip压缩方式。生成的文件,可能是叫做style.css.gz,然后手工改名成为,style.gz.css。
我所使用的CloudFront工具,主要就是CloudBerry Explorer for S3。
上传到相应的文件夹,关键是设置:
Set HTTP Headers
Content-Encoding:gzip
这一步设置好,然后,从浏览器访问时,客户端就知道该文件下载后要用gzip解压缩后才能使用。
当然这里也是有一个问题,或者说缺陷存在,如果一个浏览器是不支持gz压缩的,那么这些个压缩过的文件,将没有用处,如果是css文件,页面布局就会缺失,如果是js,网站功能可能就有部分不能实现。
但是现在,2010年,不支持gz的浏览器已经很难找到,所有目前的浏览器都是支持的,包括搜索引擎的蜘蛛,只要是支持http1.1标准的,就没有问题。
另外,测试评分方面。
使用Pagespeed测试了一下,修改前是88分,修改这三个文件之后,就是90分。
而是用Yslow测试的结果是从84分到87分。都有所提高。