Единственный надлежащий способ отключить кэширование браузера HTTP-заголовками от самого веб-приложения. Один только заголовок HTTP 1.1 "Управления Кэша" должен быть достаточным для любого post-year-2000 браузера. Но для дополнительной защиты сервер может испустить и "управление кэша" HTTP 1.1 и HTTP 1.0, "Истекает" заголовки вместе.
hack'ish, но иногда замечаемый способ обработать аннулирование кэша является строкой "cachebuster" в URL с сервера. cachebuster часто является меткой времени, базирующейся, и добавляется, поскольку querystring к каждому HTML СВЯЗЫВАЕТСЯ для создания URL уникальным и только используемым однажды. Что-то как http://example.org/filename.html?cb=
. Это ужасно, и не делает ничего, что HTTP-заголовки не делают намного лучше. Но это могло использоваться в качестве взлома для ограниченной аудитории (fx на Интранет), или как дополнительный слой защиты вместе с надлежащими HTTP-заголовками.
AFAIK там не является никаким способом выборочно отключить кэширование для единственного сайта только из Internet Explorer. Один (чертовски сложный) решение могло состоять в том, чтобы установить кэш Лака как посреднический кэш на Вашей LAN, установить Internet Explorer, чтобы использовать Лак в качестве Прокси HTTP и использовать язык VCL на Лаке для переписывания HTTP-заголовков для этого определенного сайта только.
Честно, я думаю, что Ваш поставщик делает ошибку здесь. Я предложил бы установить Fiddler2 для IE или Firebug для Firefox, и посмотреть на фактические HTTP-заголовки, которые отправляет веб-приложение. Коррелят, что с учебным руководством по кэшированию Mark Nottingham, которое я уже связал с вышеупомянутым - я предполагаю заголовки, разрешает кэшироваться или по крайней мере выразительно не запрещает кэширование.
Не уверен, что вы разобрались с этим, но я пошел по тому же пути. Посмотрев немного на источник, выяснилось, что вычисления дайджеста выполняются до сжатия, поэтому я не верю, что сжатие будет иметь отношение к значению дайджеста.
Мне удалось воспроизвести дайджест md5, созданный CouchDB для вложений, используя следующее в узле:
var crypto = require('crypto');
var attachmentData = "base64-encoded-data"
var buf = new Buffer(attachmentData, 'base64')
, md5 = crypto.createHash('md5').update(buf).digest('base64');
Надеюсь, это поможет вам или кому-то, кто ищет подробности в будущем.
CouchDB действительно вычисляет хэш после сжатия для сжимаемых файлов.
Но вложения сжимаются с помощью zlib, и мне не удалось сопоставить то, что они делают, поэтому единственное решение, похоже, извлекает их дайджест после загрузки и где-нибудь сохранить.