ETag 是否在 304 响应中返回?
Is ETag returned in a 304 response?
我正在构建一个 node.js 应用程序,该应用程序 - 每天一次 - 从一些外部网络服务器获取数据(使用“request”包)。
我想避免两次获取相同的数据,所以我在第一次下载时跟踪每个资源的 ETag(200
状态代码)。
然后,当再次(第二天)获取该资源时,我在请求中添加了一个 If-None-Match
header 和保存的 etag。
因为我怀疑有时会从远程 Web 服务器收到 200
状态代码(而不是预期的 304
),即使资源内容没有被修改,我问我是否应该期待资源 ETag
将在 304
响应中返回(以及如何在 request
响应中获取它...),以尝试调试此问题。
请看合适的RFC 2616。
The response MUST include the following header fields: (...)
- ETag and/or Content-Location, if the header would have been sent
in a 200 response to the same request
因此,如果 ETag
header 返回 200 OK
状态代码,它也必须包含在 304 Not Modified
响应中。
我正在构建一个 node.js 应用程序,该应用程序 - 每天一次 - 从一些外部网络服务器获取数据(使用“request”包)。
我想避免两次获取相同的数据,所以我在第一次下载时跟踪每个资源的 ETag(200
状态代码)。
然后,当再次(第二天)获取该资源时,我在请求中添加了一个 If-None-Match
header 和保存的 etag。
因为我怀疑有时会从远程 Web 服务器收到 200
状态代码(而不是预期的 304
),即使资源内容没有被修改,我问我是否应该期待资源 ETag
将在 304
响应中返回(以及如何在 request
响应中获取它...),以尝试调试此问题。
请看合适的RFC 2616。
The response MUST include the following header fields: (...)
- ETag and/or Content-Location, if the header would have been sent in a 200 response to the same request
因此,如果 ETag
header 返回 200 OK
状态代码,它也必须包含在 304 Not Modified
响应中。