Запрет на кеширование страницы браузером.

  • Автор темы prognostic
  • Дата начала
Статус
Закрыто для дальнейших ответов.
P

prognostic

Гость
#1
Существует такая проблема: есть ссылка на гостевуху http://chto-to_tam/cgi-bin/guest.cgi . Скрипт выдает полностью страницу. Но браузеры, которые кешируют страницы(например Опера) после первой загрузки при последующих берет сформированную страницу их кеша. Т.е. если я добавлю сообщение в ИЕ, то открыв Оперу я их не увижу, потому что станица из кеша. Вот! Можно ли запретить браузеру кешировать страницу и как это сделать, если это возможно? Или может пути другие? В ИЕ все нормально...
Спасибо
 

admin

Well-Known Member
08.08.2003
2 754
1
#2
prognostic
посмотри исходник этой страницы, а конкретнее meta теги. там есть параметры против кещирования страниц.
 
P

prognostic

Гость
#3
А ты, Серега, действительно командир :blink: Спасибо. Усек.
 
S

_serg_

Гость
#4
вот на заметку из личного опыта:
хтмл-теги не всегда помогают (хотя и должны)
лучше передавать запреты и даты в хтмл-заголовке
но, как показывает практика, даже это не всегда прокатывает (например, в случае оперы или кнопки бекспейс, альт+лефт)
 
G

Gisma

Гость
#5
практика показывает что нужно абсолютно точно соблюдать верность заголовков и все браузеры ДОЛЖНЫ их понимать. так что курим rfc :)
 
S

_serg_

Гость
#6
все браузеры ДОЛЖНЫ их понимать
предлагаю сказать это разработчикам браузеров - хе-хе
должны - это не значит обязаны :)
я знаю дофига народа, сидящего еще на 6-х и 7-х операх, 5-х осликах...
а уш они обожают закешировать все что только можно...
и тут обычное хэдерство типа
Код:
<meta http-equiv="Cache-Control" content="no-cache"> 
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
не всегда помогает.. особенно, когда некоторые криворукие админы самопально настраивают прокси и обычные веб-сервра. если данные совсем важны и в 100% случаях хочется, что бы пользователь видел именно отданный контент, можно в урлу передавать параметр, значением которого будет случайное число (например, таймстамп). в этом случае кэширование между клиентом и пользователем будет пробито и пользовательский браузер так же покажет живую страницу.
например, во многих платежных системах кэширование давится именно таким способом.
 
K

korvin0

Гость
#7
Вообще,нужно как минимум 4 заголовка слать:
Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");    // Дата в прошлом
Header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT"); // Изменилась
Header("Cache-Control: no-cache, must-revalidate");  // для HTTP/1.1
Header("Pragma: no-cache");                          // для HTTP/1.0

Но я видел живой случай, когда эти заголовки и мета-тэги не помогали. ХЕЗ что там было, но на локалхосте картинка кэшировалась IE всё время. Пришлось действительно к имени картинки таймстамп приплюсовывать.
 
Статус
Закрыто для дальнейших ответов.