304: условие, указанное с использованием условных заголовков HTTP, не выполнено - PullRequest
8 голосов
/ 24 мая 2011

В настоящее время я храню файлы в хранилище BLOB-объектов Azure, и когда я запрашиваю файлы, я получаю сообщение в firebug 304 «Условие, указанное с помощью условных заголовков HTTP, не выполнено»

I 'мы посмотрели на BLOB-объект Azure: «Условие, указанное с помощью условных заголовков HTTP, не выполнено» и похожий вопрос, но я не читаю содержимое с использованием blob.openread и т. д ... ЯЯ просто пытаюсь просмотреть содержимое в браузере.

Если я выполню обновление элемента управления (ctrl и f5) в Firefox, я получу ответ 200 - значит, он работает правильно.Я установил контроль кэша (max-age = 3600, public) для файла, который я возвращаю, но все же я получаю эту ошибку / уведомление.

Мой вопрос, должен ли я волноваться, что когда язапросить контент, который возвращается с этим ответом?

Любые ваши советы / мысли, которые у вас есть, будут очень приняты

Спасибо, Стив

1 Ответ

9 голосов
/ 25 мая 2011

Если содержимое в хранилище BLOB-объектов не изменилось с тех пор, как ваш браузер последний раз обращался к содержимому, это правильное поведение.

Код состояния HTTP 304 определен как «Не изменен» (см. http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html).. Я ожидаю, что ваш браузер отправил ETag, который он последний раз получил с содержимым, в хранилище BLOB-объектов в HTTPЗаголовок If-None-Match, и так как этот ETag по-прежнему совпадает с ETag, связанным с содержимым в хранилище, нет необходимости отправлять новую версию по сети.

Подробнее о ETags здесь: http://en.wikipedia.org/wiki/HTTP_ETag.Вы можете увидеть это поведение в действии через Fiddler.

FireFox Ctrl-F5 явно вызывает обновление, что означает, что заголовок If-None-Match не отправляется. Поэтому хранилище BLOB-объектов отправляет свежую копию изображения внизпровод.

...