Express eTag总是在变化

通过Node Express,我可以像API一样rest。 ETag是默认的,没有明确地打开或closures。 然而每当我testing打到服务器,它总是给我一个新的ETag,即使返回的JSON / HTML是完全一样的。 我也检查了返回的标题,他们看起来一样。 我testing了两种types的内容,一个API和一个静态HTML内容,如隐私页面。

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

Express'的默认行为是提供一个“强”validation的etag,如果当前的响应是一致的,那么它只会和以前的响应一样,逐字节。

您可以尝试设置express'etag来validation响应,这向浏览器指出,当前响应在语义上等同于前一个具有相同值的响应,也就是说,尽pipe它们可能不是字节对于字节相同,他们包装或代表相同的含义。 要做到这一点,使用app.set('etag','weak')

最后,如果这不起作用,你可以使用app.get('etag',function(body,encoding){...})来创build自己的etagvalidation函数。 这可以让你控制什么expression(因此,浏览器)认为在你的回应的背景下是不同的手段。

您可以在Wikipedi中find比您想要了解etags更多的信息:HTTP_ETag