If-None-Match 有效时 304 Not Modified

Posted

技术标签:

【中文标题】If-None-Match 有效时 304 Not Modified【英文标题】:304 Not Modified When If-None-Match is valid 【发布时间】:2014-07-22 18:21:25 【问题描述】:

我正在优化一个 Express JSON API 以供 iosandroid 应用使用,当应用在 If-None-Match 标头中指定 etag 时,似乎无法让 Express 以正确的 304 标头响应。

我不需要设置 Etag 生成,因为 Express 已经提供了这些;但是,当应用程序在第二个请求中再次指定该 etag 时; Express 的响应仍然是 200 的数据,正如您在 Postman 中的测试中看到的那样:

如何启用此功能?

更新:iOS 开发人员从 Express 服务器看到正确的 304 Not Modified 响应,但我不明白为什么我在 Postman 中没有看到它们 - Postman 是否支持此类操作?

【问题讨论】:

【参考方案1】:

我今天偶然发现了这个,你需要禁用邮递员默认发送Cache-Controlnone 的行为。为此,只需将设置将 Send no-cache header 更改为 No

【讨论】:

感谢@Orlando 已“修复”它 :) 也许他们应该在发现缓存标头时发出警告? @Illizian 是吗?我花了一段时间才弄明白。 还要确保像邮递员返回它一样发送 ETag,在这种情况下包括 ""

以上是关于If-None-Match 有效时 304 Not Modified的主要内容,如果未能解决你的问题,请参考以下文章

Chrome 没有发送 if-none-match

iOS:收到“304 Not Modified”响应时 AVPlayerItem 中的错误

304 Not Modified

使用HttpWebRequest时,为什么我在某些链接上出现“(304)Not Modified”错误?

使用“If-None-Match”获取:“etag”标头在 React Native 应用程序中始终返回 200

节点快递:如何找出给定etag的状态是不是为304