2011-05-24 68 views
5

我目前在Azure Blob存儲中存儲文件,並且當我請求文件時,我在304的螢火蟲中收到一條消息「使用HTTP條件標頭指定的條件(s)不符合「304:不符合使用HTTP條件標頭指定的條件

我看過Azure Blob: "The condition specified using HTTP conditional header(s) is not met"及其類似的問題,但我沒有閱讀使用blob.openread等內容......我只是想查看內容在一個瀏覽器。

如果我在firefox中做了一個控制刷新(ctrl和f5),我得到了200的響應 - 所以它被正確地提供了。我在我正在返回的文件上設置了緩存控制(max-age = 3600,public),但我仍然得到這個錯誤/通知。

我的問題是,我是否應該擔心,當我要求其迴應此內容時,迴應?

任何意見/想法,你有會大大收到

感謝 史蒂夫

回答

8

如果由於您的瀏覽器最後訪問的內容,那麼這是正確的行爲Blob存儲內容並沒有改變。

HTTP狀態碼304被定義爲「未修改」(參見http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html)。我預料到的是,你的瀏覽器已經把它最後收到的ETag和內容一起發送到HTTP If-None-Match頭中的Blob存儲,並且由於這個ETag仍然匹配與存儲內容相關聯的ETag,所以不需要發送一個新的版本。

更多關於ETags的地方:http://en.wikipedia.org/wiki/HTTP_ETag。你可以通過Fiddler在行動中看到這種行爲。

FireFox Ctrl-F5顯式強制刷新,這意味着不發送If-None-Match標頭。 Blob存儲因此會沿線傳送圖像的全新副本。

+0

內容不會改變,所以它只是在頁面加載一次之後進行直接刷新,所以它看起來像它自己的行爲。謝謝你回答傑里米。 – Steve 2011-05-26 08:18:04