簡體   English   中英

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

[英]header(“Cache-Control:max-age = 36000”) Is not working in PHP

我想在瀏覽器中緩存html頁面,並在localhost上綁定它,然后在響應標頭中發送正確的標頭(使用PHP),但瀏覽器仍不緩存響應,並且每次我請求相同的資源時,它連接到服務器並從那里獲得響應

在我的html頁面頂部

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

Response頭是

HTTP / 1.1 200 OK

日期: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

接受范圍:無

有所不同:接受編碼

內容編碼:gzip

內容長度:154

保持活動:超時= 3,最大= 100

連接:保持活動

內容類型: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

我是否應該發送其他響應頭來告知瀏覽器緩存響應?

PHP(當然)本身會添加一些神奇的緩存控制標頭。 不可能簡單地用header()覆蓋它們,而必須使用session_cache_limiter()設置不同的緩存控制標頭,或使用session_cache_limiter('')禁用所有這些魔術標頭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM