我目前正在Azure Blob存储中存储文件,当我请求文件时,我在304的firebug中收到一条消息“使用HTTP条件标头指定的条件不符合”
我查看了Azure Blob: "The condition specified using HTTP conditional header(s) is not met"及其类似的问题,但我没有阅读使用blob.openread等的内容......我只是想在浏览器中查看内容。
如果我在firefox中进行控制刷新(ctrl和f5),我得到200的响应 - 所以它正确地提供了。我已经在我正在返回的文件上设置了缓存控制(max-age = 3600,public),但我仍然收到此错误/通知。
我的问题是,当我请求内容回复此内容时,我是否应该担心?
您将获得任何建议/想法
由于 史蒂夫
答案 0 :(得分:9)
如果您的浏览器上次访问内容后Blob存储中的内容没有更改,那么这是正确的行为。
HTTP状态代码304被定义为"未修改" (见http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html)。我期望的是你的浏览器已经将最后收到的ETag与内容一起发送到HTTP If-None-Match标题中的Blob存储,并且因为这个ETag仍然匹配与存储中的内容相关联的ETag。无需在线路上发送新版本。
有关ETag的更多信息:http://en.wikipedia.org/wiki/HTTP_ETag。你可以通过Fiddler看到这种行为。
FireFox Ctrl-F5显式强制刷新,这意味着不会发送If-None-Match标头。因此,Blob Storage会在线上发送图像的新副本。