Я использую WebDav для размещения метаданных в файлах и папках сервера вместе с кешем, чтобы избежать ненужных запросов на сервер, исходя из свойства ETag файлов.Обновление HTTP ETag
В принципе, я посылаю запрос HEAD и проверяю, соответствует ли ETag тому, что у меня есть на местном. Если это не так, я отправляю более крупный медленный метод PROPFIND для получения других свойств.
Я построил этот кеш на идее, что ETag был изменен каждый раз, когда файл был изменен, в том числе, когда метаданные были изменены, добавлены или удалены.
Однако недавно я обнаружил, что это не так:
Поскольку клиенты могут быть вынуждены запрашивать у пользователей или выбросить изменил содержание, если изменения Etag, сервер WebDAV не должен изменить ETag (или Last-Modified time) для ресурса с неизменным корпусом и местоположением . ETag представляет состояние тела или содержимое ресурса. Нет аналогичного способа узнать, изменились ли свойства ..
(RFC 4918, http://www.webdav.org/specs/rfc4918.html#etag, курсив мой)
Поскольку недействительности кэша, когда свойства изменяются очень важно для меня, мне было интересно: есть ли способ, чтобы вручную поручить веб-сервер для обновления ETag ?