HTTP-кеширование в веб-API WCF кажется несовместимым в разных браузерах

Я реализую простую службу REST с веб-API WCF и пытаюсь установить HTTP заголовки для кеширования ответов.

Для простого GET, подобного этому

http://localhost:49302/my/2

, заголовки ответа выглядят следующим образом:

Server: ASP.NET Development Server/10.0.0.0
Date: Tue, 24 Jan 2012 18:18:44 GMT
X-AspNet-Version: 4.0.30319
Content-Length: 233
Cache-Control: max-age=120
Vary: Accept
Expires: Tue, 24 Jan 2012 18:20:44 GMT
Last-Modified: Tue, 24 Jan 2012 18:18:15 GMT
Content-Type: application/xml; charset=utf-8

Цель состоит в том, чтобы клиент кэшировал ресурс на две минуты.

Однако при использовании тестового клиента веб-API WCF поведение в разных браузерах несовместимо:

  • В Firefox (9.0.1) запрос кэшируется, и сначала через две минуты отображается новая версия ресурса. Такое поведение ожидаемо.
  • В Chrome (16.0.912.77 м) заголовки кеша вообще не соблюдаются. Новая версия ресурса загружается для каждого запроса GET. Такого поведения не ожидается (по крайней мере, мной).
  • В Internet Explorer (9) поведение такое же, как в Chrome.

Почему Chrome и IE не соблюдают заголовки кеша?

Это ошибка в тестовом клиенте веб-API WCF?

6
задан Mark Seemann 24 January 2012 в 18:43
поделиться