【问题标题】:IF-MODIFIED-SINCE vs UNLESS-MODIFIED-SINCEIF-MODIFIED-SINCE 与 UNLESS-MODIFIED-SINCE
【发布时间】:2013-03-15 13:01:34
【问题描述】:

if-modified-since 和 unless-modified-since(http 标头)有什么区别?我们应该向它发送什么 Web 服务器响应? IE9 正在请求我们不熟悉的 unless-modified-since 标头。

我的大部分研究都指向 if-modified-since 标头。我的理解是 unless-modified-since 标头是特定于 IE 的。

你可以到这个链接:http://imgur.com/am64WuG查看请求头的截图。

【问题讨论】:

  • 您是否将“除非-修改-自”与“如果-未修改-自”混淆?

标签: internet-explorer http webserver


【解决方案1】:

没有像 Unless-Modified-Since[list] 这样的 HTTP 标头。这甚至没有意义:为什么只有当资源与您已知的版本相同时才需要检索资源?

If-Modified-Since 仅用于获取比浏览器已知的版本更新的资源。如果在给定时间内没有被修改过,服务器不会发送它,浏览器会从缓存中获取。

另见If-Match 和If-None-Match。这些是一对更灵活的标头,可用于指示服务器仅基于已存在、不存在或已存在一个或多个特定版本的资源的各种组合执行操作。它们基于资源的 ETag 而不是上次修改的时间戳。 This question 有更多关于使用最后修改时间与 etag 的详细信息。

【讨论】:

  • 看起来像一个非标准的扩展头,可能只有一个特定的 HTTP 服务器实现才能理解它被设计为发送到。我能找到的最接近的类似标准是RFC2616中的If-Unmodified-Since,这在GET请求中不是很有用。
【解决方案2】:

Unless-Modified-Since 是 proposed in a draft 用于 HTTP 的 Range 扩展/功能。

根据草案,这个想法是客户端可以发送带有Unless-Modified-Since 标头的Range 请求,并且服务器/缓存将返回范围,除非文件自该日期起被修改,在这种情况下server/cache 将返回整个文件。 (这对于说恢复下载可能很有用 - 如果文件没有被修改,它可以继续,如果它会重新启动)

If-Range 是标准替代品(它是相同的,但也会采用 ETags)。

If-Modified-Since 与完整请求相关。

If-Unmodified-Since 可以使请求失败,而不是返回完整的文件(If-Range 会这样做)如果它改变了

【讨论】:

    猜你喜欢
    • 2012-11-01
    • 2011-10-03
    • 2020-12-27
    • 2023-03-31
    • 2012-04-19
    • 1970-01-01
    • 2016-12-10
    • 2016-04-02
    • 2011-07-02
    相关资源
    最近更新 更多