Express eTag总是在变化

时间:2014-12-15 23:19:17

标签: node.js express etag

我通过Node Express得到了像API这样的休息。 ETag是默认的,未明确打开或关闭。但是每当我测试命中服务器时,它总是给我一个新的ETag,即使返回的JSON / HTML完全相同。我还检查了返回的标题,它们看起来一样。我用两种类型的内容测试了它,一个API和一个静态HTML内容,如隐私页面。

任何想法如何检查每次都有什么不同?

1 个答案:

答案 0 :(得分:3)

快速'默认行为是提供一个强大且经过验证的etag,如果当前响应精确地相同,则逐字节,该etag将与之前的响应相同。

您可以尝试设置快递' etag来我们验证响应,它向浏览器指示当前响应在语义上等同于具有相同值的前一个响应,也就是说,虽然它们可能不是逐字节的,但是它们包含或表示相同的含义。为此,请使用app.set('etag','weak')

最后,如果这对您不起作用,您可以使用app.get('etag',function(body,encoding){...})创建自己的etag验证函数,其中返回从您的内容生成的哈希值;这允许您控制表达(因此,浏览器)认为不同在您的回复上下文中的含义。

可以在Wikipedi:HTTP_ETag

找到关于etags的更多信息