2010-11-02 1 views
1

Хотя я установил Expires на дату в прошлом, и Cache-Control до no-store, no-cache, я все равно получаю одну из моих веб-страниц, кешированных.Как я могу остановить браузер, кэширующий мою веб-страницу с использованием заголовков HTTP 1.1?

Вот заголовки HTTP отправлен в браузер:

Date: Tue, 02 Nov 2010 09:13:23 GMT 
Server: Apache/2.2.15 (el) 
X-Powered-By: PHP/5.2.13 
Set-Cookie: PHPSESSID=2luvb7b316lfc8ht570s1l1v84; path=/ 
Set-Cookie: Newsletter_Counter=17; expires=Wed, 02-Nov-2011 09:13:23 GMT; path=/ 
Expires: Thu, 19 Nov 1981 08:52:00 GMT 
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
Pragma: no-cache 
Vary: Accept-Encoding 
Content-Encoding: gzip 
Content-Length: 20 
Connection: close 
Content-Type: text/html; charset=UTF-8 

Такое же поведение для FF 3.6, Safari и IE 8.

Как получить браузеры остановить кэширование страницы?

+0

Итак, я предполагаю, что ваш вопрос в том, как я могу заставить эту страницу не кэшировать? – Oded

+0

'X-Profane-Cache-Control: stop-caching-this-f-ing-page-you-unholy-bastard-of-the-browser', вероятно, не будет работать, но может ли вы почувствовать себя лучше? –

ответ

1

Браузеры сами решаются кэшировать. Вы можете использовать случайный параметр GET, чтобы заставить браузеры не кэшировать, например.

http://www.foo.com/yourfile.zip?id=1234 
-1

Вы, конечно, кажется, делать правильные вещи (но как много людей, кажется, предположить, что отправка «Pragma: нет-кэш» заголовок ответа не имеет какой-то эффект на стороне кэширования браузера - это не должно быть) ,

Что означает его получение кеширования? Он не будет (обычно) извлекаться снова с сервера, если пользователь нажимает кнопку «назад» и извлекается с помощью операции GET.

1

Следующие заголовки всегда хорошо работали для меня (для HTTP/1.1). Вы должны не need Pragma: no-cache.

Cache-Control: no-cache 
Expires: <some date in the past> 
Vary: * 

Попробуйте изменить значение Vary на звездочку из моего примера.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.44: «Значение поля Vary« * »означает, что кеш не может определить из заголовков запроса последующего запроса, является ли этот ответ подходящим представлением».

0

Использования Cache-Control: no-store должны запретить любое хранение:

нет-магазина
[...] Если отправляются в ответ, кэш не ДОЛЖЕН хранить любую часть либо этот ответ или запрос, вызвавшего его , Эта директива применяется как к не общим, так и к общим кэшам. [...]

Смежные вопросы