![将 noCompressionForHttp10 和 noCompressionForProxies 设置为 false 的风险](https://linux22.com/image/613198/%E5%B0%86%20noCompressionForHttp10%20%E5%92%8C%20noCompressionForProxies%20%E8%AE%BE%E7%BD%AE%E4%B8%BA%20false%20%E7%9A%84%E9%A3%8E%E9%99%A9.png)
我们最近将静态内容切换到 Amazon Cloudfront。Cloudfront 似乎使用 Via 标头向源服务器 (IIS 7.0) 发出 HTTP 1.0 请求。默认情况下,IIS 7.0 会禁用这两个选项(HTTP 1.0 和代理 (Via) 请求)的文件压缩,只能通过在 applicationHost.config 中将 noCompressionForHttp10 和 noCompressionForProxies 设置为 false 来为整个服务器启用它(http://msdn.microsoft.com/en-us/library/ms690689(v=vs.90).aspx)。
我的问题是:启用 HTTP 1.0 和代理请求的压缩有什么风险?这些设置是否适用于非常旧的浏览器/代理(例如 Internet Explorer 5)还是在较新的浏览器/代理中也存在此问题?
答案1
设置这些选项应该是安全的。
查看 Ubuntu 12.04 中的默认 Apache 2.2 配置 (/etc/apache2/mods-available/deflate.conf),IE 6 似乎在 CSS、RSS 和 Javascript 的压缩方面存在一些问题。
此外,一些非常老的代理不支持“Vary”标头,因此会将缓存的压缩内容发送给未在“Accept”标头中指示压缩支持的客户端。
如果您的 Web 服务器仅通过 CDN 访问,那么这两个选项根本不重要。如果您仍然允许直接访问您的 Web 服务器,那么正如您所说,非常旧的浏览器/代理可能会有问题(但这些古老产品的用户将面临许多其他问题……)