V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jsq2627
V2EX  ›  问与答

strong etag 和 weak etag 的区别?

  •  
  •   jsq2627 · 2017-02-14 12:55:05 +08:00 · 3157 次点击
    这是一个创建于 2831 天前的主题,其中的信息可能已经有所发展或是发生改变。
    node express 里面有一个 etag 设置项 https://expressjs.com/en/4x/api.html#etag.options.table
    值有 strong 和 weak 之分,请问这两个选项有什么区别?

    https://github.com/expressjs/express/blob/master/lib/utils.js#L26
    https://github.com/jshttp/etag/blob/master/index.js#L92
    看源码实现,只是 etag 有没有 W/ 前缀之分,然而并不知道这前缀到底有什么用。
    5 条回复    2017-02-14 14:46:34 +08:00
    jiangzhuo
        1
    jiangzhuo  
       2017-02-14 13:30:53 +08:00
    /W 只是告诉收到消息的人这是个 weak etag
    strong etag 是完完全全一个字节都不差的一样
    weak etag 是 Semantic equivalence ,比如动态生成的页面显示出来的内容都一样,只是一些时间戳什么的不一样了,你可以回一个一样 etag 的,但是要写 /W 说明是 weak etag
    至于怎么处理,看客户端怎么用了
    jsq2627
        3
    jsq2627  
    OP
       2017-02-14 14:18:40 +08:00
    @jiangzhuo #1 还是不知道浏览器端对待 strong etag 和 weak etag 有什么区别。你说的应该是服务器可以区别对端 strong / weak tag 吧,比如在 weak etag 的情况下可以忽略一些比较内容。不过我看到 express 的 etag 实现也没有区别对待。
    jiangzhuo
        4
    jiangzhuo  
       2017-02-14 14:45:53 +08:00
    @jsq2627 客户端怎么对待都是自己实现的。
    具体浏览器怎么实现,看具体浏览器文档。
    比如浏览器遇到 strong etag 一样的时候就不再接收后面的 body 数据了之类的
    jiangzhuo
        5
    jiangzhuo  
       2017-02-14 14:46:34 +08:00
    @jiangzhuo 浏览器怎么实现的其实我并不知道,因为我基本从来没写过网页
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2814 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 11:48 · PVG 19:48 · LAX 03:48 · JFK 06:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.