【问题标题】:Any reason not to add "Cache-Control: no-transform" header to every page?有什么理由不向每个页面添加“Cache-Control:no-transform”标头?
【发布时间】:2018-11-26 16:46:10
【问题描述】:

我们最近在我们的网站上修复了一个与 How to stop javascript injection from vodafone proxy? 中描述的类似的烦人错误 - 基本上,沃达丰移动网络正在破坏我们在传输中的页面,对破坏视图模型的 JavaScript 进行编辑。

向遇到问题的页面添加“Cache-Control: no-transform”标头修复了它,这很棒。

但是,我们担心随着我们使用 JavaScript MVP 技术进行更多客户端开发,我们可能会再次看到这种情况。

是否有任何理由不将此标题添加到我们网站提供的每个页面?

这会阻止任何有用的转换吗?或者它基本上只是类似的运营商尝试缩小事物并可能在此过程中破坏它们的类似例子?

【问题讨论】:

标签: http-headers cache-control


【解决方案1】:

不添加此标头的原因是速度性能和数据传输。

一些代理/CDN 服务对媒体进行编码,因此如果您的客户端在代理之后或者您正在使用 CDN 服务,客户端可能会获得更高的速度并花费更少的数据传输。此标头实际上命令代理/CDN - 不对媒体进行编码,并保持数据不变。

因此,如果您不关心这一点,或者您的应用不使用图像或音乐等许多文件,或者您不希望对流量进行任何编码,则没有理由不这样做(反之亦然, 推荐)。

在此处查看 RFC:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.5

【讨论】:

  • 如果提供的 HTML 页面有 Cache-Control: no-transform 标头,但从它链接的任何图像文件没有,这是否允许代理转换图像?我假设是这样。
  • 你完全正确。如果您可以并且只想使用此标头提供 html / javascript,则其他资源将允许通过代理进行编码。使用.htaccess很容易实现,您可以定义特定类型的文件来设置它们的标题。
  • 在图像的情况下确实有很大的不同:calendar.perfplanet.com/2013/mobile-isp-image-recompression
【解决方案2】:

Google 最近合并了 googleweblight 服务,因此如果您的网页具有“Cache-Control: no-transform”标头指令,您将选择退出对网页进行转码,以防连接来自互联网速度较慢的移动设备连接。

更多信息在这里: https://support.google.com/webmasters/answer/6211428?hl=en

【讨论】:

  • 来自 Google 的关键信息是,您可能会通过添加此标头来影响 SEO:“请注意,选择不转码的页面将在搜索结果中标记,以向用户表明他们可能会采取加载时间更长,可能会使用更多数据。”
  • 请注意,使用 cache-control: no-transform 选择退出并不是 Google Bot 用来决定您的网页是否不应该被转码的唯一启发式方法。 support.google.com/webmasters/answer/6211428?hl=en 说:“有些页面目前没有转码,包括视频网站、需要 cookie 的页面(例如个性化网站)以及其他在技术上难以转码的网站。”
猜你喜欢
  • 2013-09-17
  • 1970-01-01
  • 1970-01-01
  • 2021-08-01
  • 2021-08-14
  • 1970-01-01
  • 2017-12-30
相关资源
最近更新 更多