Проблема кэширования браузера MVC Framework с RC1 - PullRequest
0 голосов
/ 03 марта 2009

В моем последнем проекте, который находится в RC1, я заметил, что у меня есть проблема с кэшированием браузера, которую я просто не могу устранить. Вот так выглядит мой заголовок

HTTP/1.1 200 OK
Date: Tue, 03 Mar 2009 15:11:34 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
X-AspNetMvc-Version: 1.0
Cache-Control: private
Expires: Tue, 03 Mar 2009 15:11:34 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 4614

Теперь технически, если это приватно, у него не должно быть срока действия, верно? Я тоже пробовал no-cache с теми же результатами. У кого-нибудь есть опыт решения этой конкретной проблемы?

Ответы [ 2 ]

3 голосов
/ 03 марта 2009

Cache-Control: private only указывает, что ответ предназначен только для одного пользователя и не должен храниться в общем кэше (скажем, в прокси) и использоваться для обслуживания запросов других пользователей. Я не вижу в документации протокола ничего, что могло бы исключить использование заголовка Expires со значением. На самом деле, кажется вполне разумным сказать «используйте это для последующих запросов только для этого пользователя, но не после этого времени». Существуют и другие значения для Cache-Control, где Expires может не иметь смысла, но я считаю, что в протоколе есть средство для устранения неоднозначности между конфликтующими заголовками (см. Раздел 4 документации по протоколу).

Цитирование из раздела 16.2 протокола HTTP 1.1 документы:

частный

  Indicates that all or part of the response message is intended for
  a single user and MUST NOT be cached by a shared cache.  This
  allows an origin server to state that the specified parts of the
  response are intended for only one user and are not a valid
  response for requests by other users.  A private (non-shared)
  cache MAY cache the response.

  Note: This usage of the word private only controls where the
  response may be cached, and cannot ensure the privacy of the
  message content.
1 голос
/ 03 марта 2009

Нет причины, по которой частное содержимое не может быть кэшировано, просто оно должно кэшироваться только браузером в контексте текущего пользователя, оно не должно кэшироваться на стороне сервера или другими кэшами, такими как прокси-сервер.

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