使用GZIP压缩Amazon S3提供的HTML页面

13

有人知道使用Amazon S3提供gzipped HTML页面是否存在问题吗?我需要最小化我们的HTML文件大小(即提供压缩的HTML、CSS和JavaScript文件),但担心以下情况:

  1. Amazon S3无法向请求的浏览器正确地提供gzipped文件。或者,

  2. 某些浏览器可能会出现读取gzipped内容的问题。我了解到旧的浏览器不支持gzipped内容(例如IE6及更早版本) - 一些(现代?)反病毒软件会剥离内容编码头。

我需要提供未压缩的HTML(我相信Amazon S3很容易支持)吗?还是可以放心,大多数现代浏览器都能处理我的gzipped内容?

2个回答

11

在上传文件之前,需要对文件进行Gzip压缩,并在S3对象中添加以下元数据条目:

Content-Encoding=gzip

这段代码在浏览器中生成了一个 ERR_CONTENT_DECODING_FAILED 错误,最好的方法是编写一个自动化 gzip 压缩脚本,然后上传到 S3。 - panchicore

2

Amazon S3 不支持自动压缩内容,但是你可以在上传内容之前手动更改内容编码头文件。这样它就会将内容作为 gzip 类型返回。但是,如果您的文件扩展名是 .gz,则 Safari 会将其视为附件,因此您必须使用 .jgz 作为文件扩展名。


这并不一定是正确的。文件扩展名与浏览器处理文件的方式关系较小,更多取决于Content-Type和Content-Encoding响应头。 - thesmart
1
thesmart - 我测试了一下发现,如果文件扩展名是 .gz,Safari 将不会遵守 content-encoding=gzip,但我可能会在测试中搞砸。 - Michael Mullany
迈克尔:啊,我没意识到你指的是Safari中的一个bug。从我的经验来看,.gz.js作为扩展名是可以正常工作的。 - thesmart

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接