11

我目前正在 Azure Blob 存储中存储文件,当我请求文件时,我在 304 的萤火虫中收到一条消息“不满足使用 HTTP 条件标头指定的条件”

我查看了Azure Blob:“不满足使用 HTTP 条件标头指定的条件”及其类似的问题,但我没有阅读使用 blob.openread 等的内容......我只是在尝试在浏览器中查看内容。

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

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

您的任何建议/想法都会受到极大的欢迎

谢谢史蒂夫

4

1 回答 1

12

如果自浏览器上次访问内容以来 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 存储会通过网络发送图像的新副本。

于 2011-05-25T12:28:33.513 回答