Установка оптимальных заголовков кэширования http и параметров сервера в ASP.Net MVC и IIS 7.5

У меня есть сайт ASP.Net (бывает MVC, но здесь это не актуально) с несколькими страницами, которые я бы очень хорошо кэшировал.

В частности, я хотел бы добиться:

вывод кешируется на сервере 2 часа.если содержимое файла на сервере изменяется, этот выходной кэш должен быть очищен для этой страницыкэшируется в браузере в течение 10 минут (т.е. даже не спрашивает сервер, свежо ли оно)когда браузер действительно выполняет последующий запрос, я бы хотел, чтобы он использовал etags, чтобы сервер мог вернуть 304, если он не изменен.

(примечание - приведенные выше значения времени являются только ориентировочными)

1) и 2) я могу добиться с помощью Response.Cache.SetCacheability (HttpCacheability.Server)Я знаю 3) может быть достигнуто с помощью max-age и cache-control: privateЯ могу отправлять etags с Response.Cache.SetETagFromFileDependencies ();

но я не могу получитьвсе из этих вещей, чтобы работать вместе. Вот что у меня есть:

    Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate);
        Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
        Response.Cache.SetETagFromFileDependencies();
        Response.Cache.SetValidUntilExpires(true);
        Response.Cache.SetMaxAge(TimeSpan.FromSeconds(60 * 10));

Возможен ли сценарий, который я хочу? Особенно:

могут ли браузеры делать 3) и 4) подобное? Когда Firefox выдает новый запрос после истечения срока его действия в локальном кэше, он действительно отправляет etag, на который сервер отвечал ранее, но я получаю ответ 200.установка переменных, как указано выше, где бы я установить продолжительность кэширования вывода?

Спасибо за любые советы!

Ответы на вопрос(1)

Ваш ответ на вопрос