304:不满足使用HTTP条件头指定的条件

时间:2011-05-24 15:00:25

标签: azure blob http-status-code-304

我目前正在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),但我仍然收到此错误/通知。

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

您将获得任何建议/想法

由于 史蒂夫

1 个答案:

答案 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会在线上发送图像的新副本。