etag中的W /出现在哪里?

时间:2018-08-22 18:32:52

标签: node.js http nginx http-headers etag

我对W /在未添加时在etag中的显示方式感到困惑。 我正在使用Node.js http服务器模块,并将Nginx作为反向代理。我在浏览器中看到由Node.js服务器生成的Etag,但带有W /标签。

有人可以解释W /的来源吗?浏览器是否基于确定它是弱etag来插入它?我希望浏览器在发送时得到它。没有W /前缀。

这是浏览器中显示的Etag标头。

etag: W/"asv1534746804282-d62serveav"

当尝试与if-none-match比较时,我必须剥离W /。 此外,对于304状态响应,我是否还需要发送Etag?

编辑:我自己添加了W /,以便Nginx对其进行修改。我希望我的假设是正确的。看来是。

1 个答案:

答案 0 :(得分:3)

如果您要求nginx动态gzip您的内容,它将把您的ETag转换为弱标签。 the specification要求这样做,因为强大的ETag只能用于逐字节相同的内容。

  

如果一个验证程序同时由给定资源的两个或多个表示形式共享,则它们是弱的,除非那些表示形式具有相同的表示形式数据。例如,如果原始服务器为应用了gzip内容编码的表示发送相同的验证器,而不是为没有内容编码的表示发送相同的验证器,则该验证器是弱的。