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

Тема в разделе "PHP программирование", создана пользователем prognostic, 24 июл 2004.

Статус темы:
Закрыта.
  1. prognostic

    prognostic Гость

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

    admin Well-Known Member

    Регистрация:
    8 авг 2003
    Сообщения:
    2.811
    Симпатии:
    0
    prognostic
    посмотри исходник этой страницы, а конкретнее meta теги. там есть параметры против кещирования страниц.
     
  3. prognostic

    prognostic Гость

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

    _serg_ Гость

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

    Gisma Гость

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

    _serg_ Гость

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

    korvin0 Гость

    Вообще,нужно как минимум 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 всё время. Пришлось действительно к имени картинки таймстамп приплюсовывать.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей