我当前正在 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/