ETag是否以304响应返回?

时间:2016-01-21 07:37:55

标签: http http-status-codes http-status-code-304

我正在构建一个node.js应用程序 - 每天一次 - 从一些外部Web服务器(使用“request”包)获取数据。

我想避免两次获取相同的数据,因此我在首次下载(200状态代码)时会跟踪每个资源ETag。

然后,当再次提取(第二天)该资源时,我在请求中添加了带有已保存etag的If-None-Match标头。

由于我怀疑有时会从远程Web服务器收到200状态代码(而不是预期304),即使资源内容未被修改,我也会问我是否应该期待资源{ {1}}要在ETag响应中返回{以及如何在304响应中获取...},以尝试调试此问题。

1 个答案:

答案 0 :(得分:6)

请查看相应的RFC 2616

  

响应必须包含以下标题字段:(...)

     
      
  • ETag和/或Content-Location,如果标题已发送       在对同一请求的200响应中
  •   

因此,如果ETag状态代码返回200 OK标头,那么它也必须包含在304 Not Modified response中。