2015-06-08 2 views
0

Есть ли способ получить ответ 304 без изменений (в отличие от 200 и содержимого файла) из файловой системы, если, например, я обращаюсь к файлу: /// img .png и браузер уже имеет этот файл в кеше?Способ получения 304 ответов от файла протокола

Я имею в виду это как, могу ли я сделать это без настройки файлового сервера, который обменивается данными через http? Или это просто ограничение файлового протокола.

ответ

1

Вы не можете. Это ограничение файла: протокол. Фактически, этот протокол не определяет 200 или 304 кодов. Эти коды относятся к http protocol.

В зависимости от того, может ли браузер использовать кешированную копию файла, клиент несет ответственность за загрузку самого файлового ресурса. Серверный компонент не знает, был ли изменен файл. Единственный компонент взаимодействия, который может знать, - это браузер, и единственный способ убедиться в этом - загрузить файл.

Он может проверять временную метку в теории, и, возможно, некоторые браузеры, но с той же меткой времени, что и предыдущий, не гарантирует, что файл не изменен. По крайней мере, в некоторых системах последнее измененное время может быть изменено с помощью системного вызова.

+0

Неверно ли браузеру использовать файловую систему, чтобы проверить данные последнего изменения? Я знаю, что могу получить эти данные на платформе Unix. – eatonphil

+0

Браузер может, но последняя измененная дата часто может быть задана системным вызовом. По этой причине он не является полностью надежным для всех систем. Обратите внимание, что коды 200 и 304 являются HTTP-кодами, не применимыми к файлу: protocol. Я обновил свой ответ, чтобы сделать это более ясным. –

+0

Возможно, так, но браузер все еще говорит мне, что получаю ответ «200» (на вкладке сети), когда я запрашиваю файл с использованием файлового протокола. – eatonphil

 Смежные вопросы

  • Нет связанных вопросов^_^