我对缓存头感到困惑。 我试图使浏览器缓存我的php / html页面,因为它们大部分是静态的,并且一个月左右都不会改变。
URL看起来像:example.com/article-url
,并且在后台是一个PHP页面,例如/article_url.php
我在PHP中尝试过此操作
$cache_seconds = 60*60*24*30;
header("Expires: ".gmdate('D, d M Y H:i:s \G\M\T', time()+$cache_seconds));
header("Cache-Control:public, max-age=".$cache_seconds);
在浏览器调试窗口中,我可以看到该页面实际上将在下个月过期:
Request URL: https://www.example.com/article-url
Request Method: GET
Status Code: 200
Referrer Policy: no-referrer-when-downgrade
cache-control: public, max-age=2592000
content-encoding: gzip
content-length: 2352
content-type: text/html
date: Mon, 25 Nov 2019 14:23:40 GMT
expires: Wed, 25 Dec 2019 14:23:40 GMT
server: nginx
status: 200
vary: Accept-Encoding
但是,如果我再次访问该页面,我会看到它再次生成,并使其在页脚中打印了请求时间戳,并且我可以看到在每次加载页面时再次生成该页面。 我期望浏览器从缓存中显示完全相同的页面。 我在做什么错了?