【发布时间】:2020-09-02 21:54:05
【问题描述】:
我注意到 Google Cloud Storage 发送的 HTTP 响应标头中的 expires 属性有一个奇怪的行为。 虽然,缓存控制是用 max-age:0 为元数据中的文件定义的(如屏幕截图所示),但 expires 属性设置为日期未来一年(第二张截图)。为什么这个日期定在未来?
这种行为的问题在于,最新的 Firefox 版本(v.77 和 v.78)似乎解释了 expires 属性,尽管它在文档中说明,它如果定义了 max-age,则不会(请参阅https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Expires)。对于使用 HLS 的直播视频播放,此行为会导致在短时间内缓冲,因为清单已被浏览器缓存。 mozilla@bugzilla 上已经有关于此行为的错误报告(请参阅https://bugzilla.mozilla.org/show_bug.cgi?id=1648075)。
更新
进一步的调查表明,在这种情况下,Firefox 不是问题,他们只是更改了标题属性的解释并坚持使用自 v.77 以来的documentation,其中 '=' 被定义为需要的字符,而不是 ' :'。显然,其他浏览器(以及直到 v.76 的 FF)也可以使用 ':' 正确解释它。
因此,在我们的案例中,需要在将文件写入 GCS 的服务内部解决问题。
【问题讨论】:
标签: firefox http-headers google-cloud-storage