HTTP Cache- Контроль - PullRequest
       5

HTTP Cache- Контроль

0 голосов
/ 05 декабря 2010

Я борюсь с этим - В PHP я делаю это для вызова GET AJAX

header('Cache-Control: max-age = 10000, private');

Браузеру все еще удается разместить запрос после этого? Почему?

header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 10000) . ' GMT');

работает нормально, хотя!

Спасибо

EDIT

header("Cache-Control: private, max-age=10000");

кажется, работает !!

MORE

Спецификация явно об этом.

cache-directive = cache-request-directive | cache-response-directive

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1

Ответы [ 2 ]

2 голосов
/ 05 декабря 2010

Вы используете Firebug? Если да, перейдите на вкладку NET, когда ваша страница загрузится, и проверьте, какие заголовки видит браузер. Это даст вам представление о том, что может быть не так ...

Я использую это -

Cache-Control   public, max-age=60
Content-Type    text/html; charset=utf-8
0 голосов
/ 05 декабря 2010

Правильно ли вы хотите, чтобы браузер кэшировал страницу?Если это так, Cache-Control "private", вероятно, является виновником, который не позволяет браузеру кэшировать страницу.Согласно RFC-2616, раздел 14.9.1. Что такое Cacheable , «private» означает:

. Указывает, что все или часть ответного сообщения предназначены для одного пользователя и ДОЛЖНЫНЕ кэшируется общим кешем.Это позволяет исходному серверу утверждать, что указанные части ответа предназначены только для одного пользователя и не являются действительным ответом на запросы других пользователей.Частный (не общий) кэш МОЖЕТ кешировать ответ.

В переводе на обычный английский это означает, что кэширование HTTP-прокси может не кэшировать страницу, а веб-браузер может.Однако обратите внимание, что веб-браузеры часто не кэшируют страницу, если Cache-Control включает "private".

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