Назад | Перейти на главную страницу

Есть ли способ отключить кеширование клиентского браузера для определенных веб-сайтов?

Это вопрос, не зависящий от браузера, но мы тестируем его с IE9.

Одно из веб-приложений, которые посещают наши пользователи, кэшируется случайным образом, и изменения не отображаются, когда должны. Ни на одном другом сайте нет этой проблемы, и мы работали с поставщиком, который утверждает, что ни с кем этого не происходит. Если мы используем панель инструментов разработчика и выбираем «принудительное обновление с сервера», все обновляется правильно.

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

Единственный правильный способ отключить кеширование браузера - это заголовки HTTP из самого веб-приложения. Заголовок HTTP 1.1 «Cache-Control» должен быть достаточным для любого браузера после 2000 года. Но для дополнительной защиты сервер может выдавать оба Заголовки HTTP 1.1 "Cache-Control" и HTTP 1.0 "Expires" вместе.

Хакерским, но иногда встречающимся способом обработки недействительности кеша является строка "cachebuster". в URL-адресах с сервера. Cachebuster часто основан на метке времени и добавляется в виде строки запроса к каждой ССЫЛКЕ HTML, чтобы сделать URL-адрес уникальным и использоваться только один раз. Что-то вроде http://example.org/filename.html?cb=<timestamp+random_value>. Это уродливо и не делает ничего лучше, чем заголовки HTTP. Но его можно использовать в качестве взлома для ограниченной аудитории (FX в интрасети) или в качестве дополнительного уровня защиты вместе с правильными заголовками HTTP.

AFAIK нет возможности выборочно отключить кеширование только для одного сайта из Internet Explorer. Одним (чертовски сложным) решением может быть установка Лаковый кеш в качестве промежуточного кеша в вашей локальной сети, настройте Internet Explorer на использование Varnish в качестве прокси-сервера HTTP и используйте Язык VCL на Varnish чтобы переписать заголовки HTTP только для этого конкретного сайта.

Честно говоря, я думаю, что ваш поставщик здесь ошибается. Я бы предложил установить Fiddler2 для IE, или Firebug для Firefoxи посмотрите, какие HTTP-заголовки отправляет веб-приложение. Соотнесите это с Учебник Марка Ноттингема по кешированию который я уже связал с выше - я предполагаю, что заголовки разрешают кеширование или, по крайней мере, явно не запрещают кеширование.

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

В IE это можно сделать так:

Вы можете дважды проверить настройки IE в Свойства обозревателя-> Дополнительно-> Безопасность-> Не сохранять зашифрованные страницы на диск.

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

Убедитесь, что вы установили правильные заголовки срока действия. Если вы поместите время в прошлое, контент не будет кэшироваться. Проверьте время / дату на рабочей станции, на которой работает IS9. Смотрите также: http://www.mnot.net/cache_docs/

<meta http-equiv="PRAGMA" content="NO-CACHE">

http://www.zann-marketing.com/developer/20051018/stop-browser-caching-using-meta-tags.html

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