php

php里设置浏览器缓存

dafenqi
2023-08-07 / 0 评论 / 13 阅读 / 正在检测是否收录...

php里设置浏览器缓存

$lastModified = time() + 30;
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $lastModified) . ' GMT'); 此行设置后,会去服务器检查是否过期(文件是否修改过),如果没过期,就取本地文件(服务器需要返回header)
header('Expires: ' . gmdate('D, d M Y H:i:s', $lastModified) . ' GMT');  此行设置后,不再去服务器检查是否过期,直接取本地文件。
header('Cache-Control: max-age=1');  (相对于本地时间 )

还有一个Etag,是比较字符串,而不是时间。

下面这段代码是禁止点后退后,缓存.

header('Expires: Thu, 01 Jan 1970 00:00:00 GMT');

// HTTP/1.1
header('Cache-Control: private, no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0, max-age=0', false);

ps

header("Content-Type: application/json");//有时要加上这句,不然不起作用(看nginx配置)

<?php
// 这是一个缓存测试
$cache_time = 60*10; //十分钟缓存
$modified_time = @$_SERVER['HTTP_IF_MODIFIED_SINCE'];
if( strtotime($modified_time)+$cache_time > time() ){

header("HTTP/1.1 304"); 
exit; 

}
header("Last-Modified: ".gmdate("D, d M Y H:i:s", time() )." GMT");
header("Content-Type: application/json");//有时要加上这句,不然不起作用(看nginx配置)
echo "
"; echo date('Y-m-d H:i:s',time()); echo 222222; ?>

0

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /www/wwwroot/testblog.58heshihu.com/var/Widget/Archive.php on line 1032

评论 (0)

取消