спорить не хочу так что считайте это "имею мнение хрен оспоришь"
"header("Cache-Control: public"); " 
это кривой заход
must-revalidate заставляет браузер проверять ИЗМЕНЯЛСЯ ли файл с момента его кеширования или нет.
вы тупо загоняете в кеш все и вся без проверки, в итоге может получиться так что в теме сто новых постов а у кого то грузится из кеша все те же первые пять.
(пока нет времени проверить на практике, инфу с хабра брал когда то, но тоже покопаюсь, любопытная тема)            
                        
         
            
            
            
                ramzes (17.05.2011/01:03)
св итоге может получиться так что в теме сто новых постов а у кого то грузится из кеша все те же первые пять.
(пока нет времени проверить на практике, инфу с хабра брал когда то, но тоже покопаюсь, л
Потому, советую обратить внимание на 2-ю строчку кода, где в явном виде задается время кэширования страниц 30 секунд (чего вполне достаточно).
---
Пример - данный сайт. Приведенный код уже стоит тут.
Разве что-то плохо обновляется? Вроде никто пока не жаловался.
Зато кнопка "назад" работает на всех браузерах (которые проверял0 без перезагрузки страницы.            
 
                        
         
            
            
            
                AlkatraZ,  пардон, проглядел
.gif) 
             
            
            
            
                Оперу можно было не проверять. Она всегда кэшировала и кэширует страницы. И ей абсолютно пофиг на эти заголовки. При переходе назад ВСЕГДА страница берётся из кэша, а не перезагружается как во всяких фраерфоксах и прочей фигне и это как по мне так главное её достоинство которого нет в других браузерах.            
                        
         
            
            
            
                Максим (17.05.2011/13:05)
Оперу можно было не проверять. Она всегда кэшировала и кэширует страницы. И ей абсолютно пофиг на эти заголовки. При переходе назад ВСЕГДА страница берётся из кэша, а не перезагружается как во всяких 
Согласен 

---
Просто приходится учитывать и остальные мнения разработчиков браузеров.
Полюбому, если мы следуем официальным рекомендациям RFC, это хорошо.            
 
                        
         
            
            
            
                Процветите меня, на какой файл ставиь эти cache?            
                        
         
            
            
            
                Ставил вот так 
header((stristr($agn, "msie") && stristr($agn, "windows")) ? 'Cache-Control: public; Content-type: text/html; charset=UTF-8' : 'Content-type: application/xhtml+xml; charset=UTF-8');
 не получается            
 
            
            
            
                Nurdaulet,  
header("Cache-Control: public");
header("Expires: " . date("r", time() + 30));
Это выше того хедера, который в оригинале            
 
            
            
            
                seg0ro (17.05.2011/20:15)
Nurdaulet,  header("Cache-Control: public");
header("Expires: " . date("r", time() + 30));
Это выше того хедера, который в оригинале
Да
Только время кэширования можешь увеличить до 120 (2 минуты), как раз оптимально, щас тут на сайте именно так и стоит.