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 отправляет свежую копию изображения по проводам.