Чтобы установить Cache-Control, вы должны указать его самостоятельно. Вы можете сделать это в web.config, IIS Manager для выбранных папок (статические, изображения ...) или установить его в коде. Стандарт HTTP 1.1 рекомендует в качестве максимального срока действия один год в будущем.
Установка срока годности на один год в будущем считается хорошей практикой для всего статического контента на вашем сайте. Отсутствие его в заголовках приводит к If-Modified-Since
запросам, которые могут занять больше времени, чем в первый раз, для небольших статических файлов. В этих вызовах используется заголовок ETag.
Когда у вас есть Cache-Control: max-age=315360000
, базовые HTTP-ответы будут превосходить по количеству If-Modified-Since>
вызовов, и в связи с этим будет полезно удалить заголовок ETag и получить меньшие статические заголовки ответа файла. IIS не имеет настройки для этого, поэтому вы должны сделать response.Headers.Remove("ETag");
в OnPreServerRequestHeaders()
А если вы хотите еще больше оптимизировать заголовки, вы можете удалить X-Powered-By:ASP.NET
в настройках IIS и заголовок X-Aspnet-Version
(хотя я не вижу в вашем ответе) в web.config - enableVersionHeader="false"
в system.web / Элемент httpRuntime.
Для дополнительных советов предлагаю отличную книгу - http://www.amazon.com/Ultra-Fast-ASP-NET-Build-Ultra-Scalable-Server/dp/1430223839