[請益] PHP 使用cache

作者: coldollsheep (拿出我的駭客靈魂)   2015-01-23 15:15:09
我想做一支PHP會去撈檔案內容
但是那個檔案內容預期一個小時才會更動一次
所以我想吐資料的時候去讓瀏覽去快取一小時
一小時內你再要請求請用自己瀏覽器的快取
我程式如下:
<?php
$offset = 60;
header("Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT");
header("Cache-Control: max-age=$offset, must-revalidate");
header('Content-Type: text/html') ;
echo $content = file_get_contents('cache.html') ;
?>
可是我刷新F5,我看狀態一直是兩百耶。表示是伺服器重跑的
請問我該如何設定呢?
如果成功應該是304是嗎?
作者: rockmanalpha (KIN)   2015-01-23 15:39:00
offset是算秒的喔 offset應該是3600
作者: coldollsheep (拿出我的駭客靈魂)   2015-01-23 15:57:00
恩 感謝回應,但即便如此,他還是連六十秒都沒快取
作者: rockmanalpha (KIN)   2015-01-23 16:04:00
要不要換個作法 自己用filemtime算然後寫304 header
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-01-23 16:05:00
阿你不是叫他must-revalidate他當然聽你的阿
作者: rockmanalpha (KIN)   2015-01-23 16:05:00
http://tinyurl.com/kc5kn2k Stackoverflow參考
作者: coldollsheep (拿出我的駭客靈魂)   2015-01-23 16:17:00
TO M大,感謝提醒,我直接把, must-revalidate拿掉但還是200....OrzTO R大,我實做看看,但不如預期的原因是甚麼呢?比較怕是我對cache-control的誤解
作者: rockmanalpha (KIN)   2015-01-23 16:25:00
你是用Firebug看Response嗎 有聽說過Firebug總是回200的問題
作者: coldollsheep (拿出我的駭客靈魂)   2015-01-23 16:27:00
我用你貼的方式成功了! & 我用chrome但是依舊不知道我錯在哪邊,是不是根本不是這樣用的
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-01-23 16:29:00
我也不懂 原來關於must-revalidate眾說紛紜 XD
作者: coldollsheep (拿出我的駭客靈魂)   2015-01-23 16:34:00
眾說紛紜!!XDDD這太好笑了 ㄚ ~ 都不乖乖執行

Links booklink

Contact Us: admin [ a t ] ucptt.com