Как включить кэш IIS таким образом, чтобы браузеры даже не проверяли, изменился ли ресурс? - PullRequest
0 голосов
/ 29 октября 2010

Мы включили статическое кэширование ресурсов в нашем приложении ASP.NET следующим образом:

<system.webServer>
    <staticContent>
      <clientCache cacheControlMode="UseExpires" httpExpires="Thu, 29 Oct 2020 00:00:00 GMT" />
    </staticContent>
  </system.webServer>

Используя сниффер, мы можем подтвердить, что тег Expires действительно помещается в заголовок respose.

Однако браузеры настаивают на том, чтобы запросить сервер проверить, изменился ли ресурс. Сервер возвращает неизмененный код (304). Это действительно очень легкий запрос, но мы очень заинтересованы в производительности, поэтому мы хотели бы сохранить эти запросы.

Как я могу сказать броузерам, что они даже не должны запрашивать сервер?

PS: ETag должным образом отправляются клиенту. Я думал, что если я их удалу, браузеры могут как-то перестать запрашивать сервер, но я не смог удалить эти теги в IIS 7. Я не знаю, поможет ли это в любом случае.

1 Ответ

2 голосов
/ 30 октября 2010

Что-то не складывается, того, что вы описали, должно быть достаточно для устранения поведения If-Modified-Since / 304.Можете ли вы включить все заголовки ответа, чтобы мы могли взглянуть поближе?

Кроме того, обратите внимание, что нажатие ' Refresh ' приведет к тому, что вы описали - то, что вы должны тестировать,фактическая ссылка на страницу в вопросе.

К вашему сведению, я недавно опубликовал аналогичный вопрос (1), за исключением того, что вижу противоположное: обычный If-None-Match /304 взаимодействие было оптимизировано браузером (в том же сеансе).

(1) ETag, IIS7, Политика кеширования ядра (enableKernelCache)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...