304: условие, указанное с использованием условных заголовков HTTP, не выполнено

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

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

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

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

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

Спасибо Стив

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам