我正在构建一个node.js应用程序 - 每天一次 - 从一些外部Web服务器(使用“request”包)获取数据。
我想避免两次获取相同的数据,因此我在首次下载(200
状态代码)时会跟踪每个资源ETag。
然后,当再次提取(第二天)该资源时,我在请求中添加了带有已保存etag的If-None-Match
标头。
由于我怀疑有时会从远程Web服务器收到200
状态代码(而不是预期304
),即使资源内容未被修改,我也会问我是否应该期待资源{ {1}}要在ETag
响应中返回{以及如何在304
响应中获取...},以尝试调试此问题。
答案 0 :(得分:6)
请查看相应的RFC 2616。
响应必须包含以下标题字段:(...)
- ETag和/或Content-Location,如果标题已发送 在对同一请求的200响应中
因此,如果ETag
状态代码返回200 OK
标头,那么它也必须包含在304 Not Modified response
中。