Я использую asp.net MVC с кэшированием вывода (атрибут OutputCache) на некоторых моих методах контроллера и получаю некоторые действительно странные результаты в заголовках HTTP.
Когда я добавляю атрибут к действию контроллера, который обрабатывает представление главной страницы. создается следующий заголовок:
Date Thu, 16 Jul 2009 23:04:58 GMT
Server Microsoft-IIS/6.0
X-Powered-By ASP.NET
X-AspNet-Version 2.0.50727
X-AspNetMvc-Version 1.0
Content-Encoding gzip
Cache-Control public, max-age=300
Expires Thu, 16 Jul 2009 23:04:59 GMT <<<<<<<<< This is wrong
Last-Modified Thu, 16 Jul 2009 23:04:55 GMT
Vary *
Content-Type text/html; charset=utf-8
Content-Length 575
Но когда я добавляю его в действие контроллера, которое отображает результат FileStreamResult, который отправляет изображение для этой страницы, я получаю следующее
Connection close
Date Thu, 16 Jul 2009 23:04:59 GMT
Server Microsoft-IIS/6.0
X-Powered-By ASP.NET
X-AspNet-Version 2.0.50727
Cache-Control public, max-age=300
Expires Thu, 16 Jul 2009 23:09:58 GMT <<<<<<<<< This is right
Last-Modified Thu, 16 Jul 2009 23:04:58 GMT
Vary *
Вы заметите, что существует разница в способе обработки Expires & Last-Modified между запросом главной страницы и запросом изображения.
На мой взгляд, изображение является правильным, поскольку заголовок Expires имеет значение Last-Modified + max-age, но в запросе главной страницы заголовок Expires совпадает с Last-Modified. Мне нужно, чтобы оба были последними изменениями + максимальный возраст ...
Что здесь не так, это где-то ошибка ??
Приветствие
Энтони