strong etag 和 weak etag 的区别?

2017-02-14 12:55:05 +08:00
 jsq2627
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/ 前缀之分,然而并不知道这前缀到底有什么用。
3079 次点击
所在节点    问与答
5 条回复
jiangzhuo
2017-02-14 13:30:53 +08:00
/W 只是告诉收到消息的人这是个 weak etag
strong etag 是完完全全一个字节都不差的一样
weak etag 是 Semantic equivalence ,比如动态生成的页面显示出来的内容都一样,只是一些时间戳什么的不一样了,你可以回一个一样 etag 的,但是要写 /W 说明是 weak etag
至于怎么处理,看客户端怎么用了
likexian
2017-02-14 13:38:05 +08:00
jsq2627
2017-02-14 14:18:40 +08:00
@jiangzhuo #1 还是不知道浏览器端对待 strong etag 和 weak etag 有什么区别。你说的应该是服务器可以区别对端 strong / weak tag 吧,比如在 weak etag 的情况下可以忽略一些比较内容。不过我看到 express 的 etag 实现也没有区别对待。
jiangzhuo
2017-02-14 14:45:53 +08:00
@jsq2627 客户端怎么对待都是自己实现的。
具体浏览器怎么实现,看具体浏览器文档。
比如浏览器遇到 strong etag 一样的时候就不再接收后面的 body 数据了之类的
jiangzhuo
2017-02-14 14:46:34 +08:00
@jiangzhuo 浏览器怎么实现的其实我并不知道,因为我基本从来没写过网页

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/340343

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX