http - ETag 是否在 304 响应中返回?

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

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

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

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

因为我怀疑有时会从远程 Web 服务器收到一个 200 状态代码(而不是预期的 304),即使资源内容没有被修改,我问是否我应该期望资源 ETag304 响应中返回(以及如何在 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 响应中。

关于http - ETag 是否在 304 响应中返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34917907/

相关文章:

ruby-on-rails - 如何从 Ruby on Rails 应用程序返回正确的 HTTP 错误代码

apache - CentOS7 httpd启动失败,网站无法访问

http - 用grails接收http状态码

asp.net-web-api - 缓存从 Web api 服务返回的图像

javascript - jquery.post() 后端响应,但回调函数参数为空

http - Rust/Serde/HTTP : Serialize `Option<http::Method>`

webserver - lighttpd:404 页面不返回 404 状态

rest - 使用 Http 406 返回什么?

ajax - 如何从缓存中清除 HTTP 304 响应?