azure - 304 : The condition specified using HTTP conditional header(s) is not met

标签 azure blob http-status-code-304

我当前正在 Azure Blob 存储中存储文件,当我请求文件时,我在 Firebug 中收到一条消息 304“未满足使用 HTTP 条件 header 指定的条件”

我看过Azure Blob: "The condition specified using HTTP conditional header(s) is not met"这是一个类似的问题,但我没有阅读使用 blob.openread 等的内容...我只是想在浏览器中查看内容。

如果我在 Firefox 中进行控件刷新(ctrl 和 f5),我会得到 200 的响应 - 所以它被正确提供。我已在返回的文件上设置了缓存控制(max-age=3600,公共(public)),但仍然收到此错误/通知。

我的问题是,当我请求内容时,我是否应该担心它会返回此响应?

您的任何建议/想法都将得到极大的采纳

谢谢 史蒂夫

最佳答案

如果自浏览器上次访问内容以来 Blob 存储中的内容未发生更改,那么这是正确的行为。

HTTP 状态代码 304 定义为“未修改”(请参阅​​ http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html)。我预计您的浏览器已将上次收到的 ETag 与内容一起发送到 HTTP If-None-Match header 中的 Blob 存储,并且由于此 ETag 仍然与与存储中的内容关联的 ETag 匹配,因此无需发送一个新版本。

有关 ETag 的更多信息:http://en.wikipedia.org/wiki/HTTP_ETag 。您可以通过 Fiddler 查看此行为的实际效果。

FireFox Ctrl-F5 显式强制刷新,这意味着不会发送 If-None-Match header 。因此,Blob 存储会通过网络发送图像的新副本。

关于azure - 304 : The condition specified using HTTP conditional header(s) is not met,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6112520/

相关文章:

java - 如何使用服务到服务身份验证来使用 Java 进行 Azure Key Vault 的本地开发?

c# - 在 Azure-Sql 数据库上运行到 "Master"的连接

mysql - VB.NET:从 MySQL DB 检索图像(blob)

go - 从 DB golang 查询后收到 304 代码

.net - 增量/差异备份到 Azure blob

reactjs - Azure 网站中的 React App 缓存问题,浏览器提供旧版本

database - 从 Oracle DB 检索大量小 BLOB(2-10kb)时要调整的参数?

c# - FileStream 错误 - 进程无法访问文件...被另一个进程使用

http - 缓存控制不返回 304

linux - 页面上的某些图像未通过 Varnish Cache-304 未修改