直接提供gzip压缩内容 - 不好的事情要做?

时间:2012-07-25 15:39:02

标签: gzip static-content

我的网站配置为使用gzip压缩来提供静态内容,如下所示:

<link rel='stylesheet' href='http://cdn-domain.com/css/style.css.gzip?ver=0.9' type='text/css' media='all' />

我没有看到任何网站做过类似的事情。所以,问题是,这有什么问题?我期待缺点吗?

正如我所理解的那样,大多数网站都配置为仅在请求附带时提供普通静态文件(.css,.js等)和gzip压缩内容(.css.gz,.js.gz等)。一个Accept-Encoding: gzip标题。当所有浏览器支持gzip时,他们为什么要这样做?

PS:我根本没有看到任何性能问题,因为所有静态内容都是在上传到CDN之前进行了压缩,然后CDN只提供gzip压缩文件。因此,我的服务器没有压力/压力。


以防万一它有用,这是gzip压缩文件的HTTP响应标头信息:

Screenshot 1

这是针对gzip的favicon.ico文件:

Screenshot 2

1 个答案:

答案 0 :(得分:26)

支持Content-Encoding: gzip不是任何当前HTTP规范的要求,这就是请求标头形式的触发器。

在实践中?如果您的受众使用的是网络浏览器,而您只是担心合法用户,那么只有预处理的gzip压缩版本才能让任何人真正受到影响。这是过去时代的残余。浏览器这些天应该处理强制馈送gzip压缩内容,即使它们没有请求它,只要你还为它们提供的内容提供正确的标题。重要的是要意识到HTTP请求/响应是会话,并且请求中的大多数标头都是这样; 请求。在大多数情况下,另一端的服务器没有义务遵守任何特定的标头,只要它们返回一个有意义的有效响应,另一端的客户端应该尽力理解返回的内容。 。这包括如果服务器响应它已使用它,则启用gzip。

如果您的目标是机器消耗,那么请稍微警惕。有时候人们仍然认为编写自己的HTTP / SMTP / etc解析器是一个明智的想法,即使这个主题在多个库中已经完成了几乎所有语言的死亡。所有库都应该支持gzip,但手动解析器通常不会。

相关问题