V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
FaiChou
V2EX  ›  程序员

http 协议中关于缓存过期的两个字段 `Expires` 和 `max-age` 几个问题

  •  
  •   FaiChou ·
    FaiChou · 46 天前 · 957 次点击
    这是一个创建于 46 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这两者很相似, max-age 优先级更高.

    但为什么有了其中一个字段, 还要继续再加另一个字段?

    这种问题怎么才能搜出想要结果(rfc 的讨论)?关键字有哪些, 我尝试了几个关键字都搜不到好的回答.

    https://tools.ietf.org/html/rfc2616#section-14.9.3

    Mess17
        1
    Mess17   46 天前
    expires 是绝对值,max-age 是相对值呀。HTTP 先有的 expires,后来因为 expires 可能有的问题(服务器和客户端时间可能不一致),才有的 max-age,所以都并存了。
    Kinnice
        2
    Kinnice   46 天前
    Expires 在此时候之后,响应过期,时间是绝对时间,受本地时间影响。
    max-age 是距离请求发起的时间的秒数,超过这个时间缓存被认为过期(单位秒)。与 Expires 相反,时间是相对于请求的时间。

    https://blog.techbridge.cc/2017/06/17/cache-introduction/
    huangmingyou
        3
    huangmingyou   45 天前
    基于时间的是弱验证,还有配套的基于 etag 的强验证。
    FaiChou
        4
    FaiChou   45 天前
    @Mess17 #1
    @Kinnice #2

    为了兼容旧版本所以两者共存? http 能否移除不好用的字段? expires 完全可以被 max-age 代替吧?
    Kinnice
        5
    Kinnice   45 天前 via Android
    @FaiChou 还有很多老系统用着,指望全世界都一次性改掉吗,只能等很久很久才能取消掉吧
    rodrick
        6
    rodrick   45 天前
    1.为了新旧兼容 2. 为了客户端改时间的问题
    KuroNekoFan
        8
    KuroNekoFan   45 天前 via iPhone
    @huangmingyou 什么强验证弱验证,只有 cache 和 content negotiate (缓存和内容协商)
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2095 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 09:43 · PVG 17:43 · LAX 02:43 · JFK 05:43
    ♥ Do have faith in what you're doing.