【问题标题】:Thoughts on dealing with expires headers, etags, and content updates?关于处理过期标头、etag 和内容更新的想法?
【发布时间】:2011-08-15 15:39:43
【问题描述】:

我已经在我的网站上实现了独立于服务器的 eTag,我现在正在考虑添加过期标头以防止大多数 304 请求。

我担心使用长过期标头,因为如果您需要更新内容,则很难强制刷新。而且我也不喜欢用版本控制查询字符串来弄乱我的代码,例如:

<link rel="stylesheet" type="text/css" href="/style.css?version=X" />

所以我正在考虑将过期标头设置为几乎所有内容的短时间,例如 10 分钟。这样,我可能只有 10 分钟的陈旧内容窗口,但对于正常的浏览会话,我将停止大部分 304。即使他们确实停留更长时间,除非内容发生变化,否则我只会每 10 分钟提供一次 304。

它看起来很优雅,但我已经看到很多网站使用上述版本控制查询字符串方法,甚至谷歌的 mod_pagespeed 也有或多或少自动执行版本控制的选项,所以我只是好奇这是否可靠方法,或者如果我遗漏了一些使其不切实际的东西。

谢谢

【问题讨论】:

    标签: caching browser-cache etag expires-header


    【解决方案1】:

    而且我也不喜欢使用版本控制查询字符串来弄乱我的代码,例如:

    为什么?没有人看到它,您可以轻松地自动化它 - 让您的 CMS 或框架自动将文件的修改时间或 md5 哈希附加到链接标签。

    【讨论】:

    • 对于单个 CSS 文件,它不会是世界末日,但如果我需要更新该文件中的 CSS 背景或网站上其他地方的图像怎么办?向每个资源添加 ?version=X 会很丑陋。
    • 引发不必要的 HTTP 请求也很丑陋。
    • 我同意。大多数时候,您的图像不会改变,所以这可能就是 CSS 版本控制盛行的原因。我想我宁愿有一个可以用于所有静态(ish)资源的解决方案。例如,除非我手动维护它们或在服务之前对文件进行一些处理,否则没有好的方法可以将 CSS 背景的哈希直接附加到 CSS 文件中。
    猜你喜欢
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    相关资源
    最近更新 更多