【问题标题】:header("Cache-Control:max-age = 36000") Is not working in PHPheader("Cache-Control:max-age = 36000") 在 PHP 中不起作用
【发布时间】:2017-03-29 13:01:02
【问题描述】:

我想在我的浏览器中缓存 html 页面,我将它绑定在本地主机上,并且我在响应头中发送正确的头(使用 PHP),但浏览器仍然没有缓存响应,每次我请求相同的资源,它连接到服务器并从那里获得响应

在我正在使用的 html 页面的顶部

 <?php 
header("Cache-Control:max-age=36000");
  ?>

Response 标头是

HTTP/1.1 200 正常

日期:格林威治标准时间 2016 年 11 月 15 日星期二 14:45:37

服务器:Apache/2.4.16 (Win32) OpenSSL/1.0.1p PHP/5.6.12

X-Powered-By:PHP/5.6.12

缓存控制:max-age=36000

接受范围:无

变化:接受编码

内容编码:gzip

内容长度:154

保持活动状态:超时=3,最大值=100

连接:保持活动状态

内容类型:文本/html; charset=UTF-8

当我在标题中看到Cache-Control:max-age=36000 时,我期待浏览器会将此响应缓存 36000 秒,如果我重新加载页面,我将获得缓存的响应(和不同的响应标题),但我在重新加载后得到相同的标题,并再次直接从服务器获得响应,,

重载后request headers

GET /check.php HTTP/1.1
Host: localhost
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML,    like Gecko) Chrome/54.0.2840.71 Safari/537.36
Accept:     text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch, br
Accept-Language: en-US,en;q=0.8

我应该发送任何其他响应标头来告诉浏览器缓存响应吗?

【问题讨论】:

    标签: php html caching


    【解决方案1】:

    PHP(当然)自己添加了一些神奇的缓存控制标头。不可能简单地用 header() 覆盖那些,你必须使用 session_cache_limiter() 来设置不同的缓存控制头,或者 session_cache_limiter('') 来禁用这些神奇的头。..

    【讨论】:

      猜你喜欢
      • 2011-08-22
      • 1970-01-01
      • 2011-09-09
      • 1970-01-01
      • 2011-11-03
      • 2015-02-14
      • 2023-04-05
      相关资源
      最近更新 更多