Означает ли управление кэшем: частное без данных об истечении «немедленное истечение срока действия»? - PullRequest
0 голосов
/ 13 июля 2011

Большая часть контента, который, как я заметил, обслуживается из ASP.NET, имеет только частный заголовок Cache-Control: без заголовка Last-Modified или Etag.

Я также заметил, что браузеры никогда , похоже, не кэшируют этот контент, о чем свидетельствует тот факт, что браузеры никогда не выдавали ничего, кроме безусловных запросов GET.

Я пытаюсь поддержать утверждение о том, что ресурс с Cache-Control: частный и без данных об истечении будет обрабатываться всеми браузерами как «не кэшировать», но не может найти ничего в RFC (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html) подтвердить или опровергнуть это.

Правильно ли мое утверждение? Прошу цитировать!

1 Ответ

1 голос
/ 15 августа 2011

На W3C есть цепочка писем, которая существует около 15 лет: http://www.w3.org/Protocols/HTTP/Issues/cache-private.html

(1) «Контроль кэша: приватный» остается таким же, как в черновике Роя, но с упоминание о расширяемости явно включено. Кэши однопользовательских агентов фактически разрешено игнорировать эту директиву.

(2) «Cache-control: no-cache» определен так, чтобы означать то же самое вещь как «Cache-control: private», но без исключения для кеши пользовательского агента.

(3) Мы добавляем «Cache-control: no-store», который применяется ко всему сообщение и может быть отправлено либо в ответе, либо в запросе. Если отправлено в запросе это означает «не хранить какую-либо часть этого запроса или любой ответ на него. "Если отправлено в ответе, это означает" не хранить любой части этого ответа или запроса, который вызвал его. " Это относится как к однопользовательским, так и к общим кэшам. Кеши должны подчиняться этому, но мы явно предостерегаем от зависимости от него как от конфиденциальности механизм. Пользователи могут явно хранить такие ответы вне система кэширования (например, с диалоговым окном «Сохранить как». Буферы истории могут хранить такие ответы как часть их нормальной работы.

Далее говорится:

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

И самое главное:

Во всяком случае, похоже, что основное различие между "частным" и «no-cache» - это то, что «private» позволяет кэшировать в пользовательском агенте однопользовательский кеш, тогда как «без кеша» нет.

Таким образом, на этом основании я имею в виду, что не частное кэширование запрещено (т.е. на уровне прокси), но частное кэширование разрешено (то есть в браузере). Я знаю, что это просто обсуждение проекта спецификации, но это лучшее объяснение, которое мне удалось найти.

...