如果我仅提供内容的压缩版本,是否应该添加variable accept编码标头?


11

我只是将静态站点从VPS移到了Amazon S3。由于S3并非网络服务器,因此我决定仅提供页面的压缩版本,因此我无法使用基于标题的逻辑。我还将Cloudfront用作CDN。

我正在http://gtmetrix.com/上测试我的页面,但由于未添加,因此记错了vary accept encoding header。因此,我检查了这是什么意思,据我所知,当我们同时提供压缩版本和未压缩版本时,这才有意义。

因此,我希望您能帮助我澄清这一点。我应该添加它吗?谢谢 :)

Answers:


7

我决定只提供页面的压缩版本

如果你只提供文件,您使用已经被压缩的gzip,然后使用Vary: Accept-Encoding就没有什么好处,因为不会有投放到不发送用户的文件解压缩副本Accept-Encoding: gzipHTTP请求。这些天大多数客户都会发送此邮件,所以您应该没事。

在线网站性能测试不知道您仅提供压缩文件,而且它们也不是万无一失的。例如,您可能会注意到,您使用的服务在标记为的列下列RECOMMENDATION出了这些建议,因此明智的做法是在关注或尝试实现这些建议之前,先进行一些事实调查(就像您所做的那样)。


我只想补充一点,我的怀疑来自于这篇文章:maxcdn.com/blog/accept-encoding-its-vary-important
Kev

你没事。该文章讨论Vary: Accept-Encoding了在原始服务器上使用CDN的情况。正如您指出的那样,您的原始服务器不提供此功能,并且由于Google的要求,它实际上不再需要All modern browsers support and automatically negotiate gzip compression for all HTTP requests.因此,他们建议在所有站点上使用gzip。该文章(自2013These days you're unlikely to have clients without compression, but why risk cache mixups?

1
由于您仅提供压缩文件,因此“缓存混合”(即来自相同文件的未压缩版本)将不适用于您的情况。
dan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.