header(“Cache-Control:max-age = 36000”)在PHP中不起作用

时间:2016-11-15 15:12:12

标签: php html caching

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

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

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

Response标题是

  

HTTP / 1.1 200确定

     

日期:2016年11月15日星期二14:45:37 GMT

     

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

     

X-Powered-By:PHP / 5.6.12

     

缓存控制:max-age = 36000

     

Accept-Ranges:none

     

变化:接受编码

     

内容编码:gzip

     

内容长度:154

     

Keep-Alive:timeout = 3,max = 100

     

连接:Keep-Alive

     

Content-Type:text / html;字符集= 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

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

1 个答案:

答案 0 :(得分:0)

PHP(当然)自己添加了一些神奇的缓存控制头。不可能简单地用header()覆盖那些,你必须使用session_cache_limiter()来设置不同的缓存控制头,或者session_cache_limiter(&#39;&#39;)一起禁用那些神奇的头文件。< / p>