登录
首页 >  文章 >  php教程

PHP禁止浏览器缓存的正确设置方法

时间:2026-01-11 22:01:48 153浏览 收藏

大家好,今天本人给大家带来文章《PHP禁止缓存的header设置方法》,文中内容主要涉及到,如果你对文章方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

答案是使用header()函数设置禁止缓存的HTTP头可防止页面被浏览器或代理服务器缓存,适用于敏感或实时数据场景。具体包括:发送Expires设为过去时间、Last-Modified为当前时间、Cache-Control设no-store no-cache must-revalidate及post-check=0 pre-check=0、Pragma设no-cache;这些头须在任何输出前调用,常用于登录后页面或AJAX响应,以确保数据不被缓存,提升安全与实时性。

php使用header()禁止缓存的方法

在PHP中,使用 header() 函数可以控制浏览器和中间代理服务器不缓存页面内容,确保每次请求都从服务器重新获取最新数据。这在处理敏感信息或实时数据时非常有用。

禁止缓存的常用Header设置

通过发送以下HTTP头信息,可以有效防止页面被缓存:

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
  • Expires:设置一个过去的时间,表示响应已过期。
  • Last-Modified:告诉浏览器资源最后修改时间,配合条件请求使用。
  • Cache-Control: no-store, no-cache, must-revalidate:HTTP/1.1 标准下禁止缓存的关键指令。
  • Cache-Control: post-check=0, pre-check=0:针对IE的额外兼容设置。
  • Pragma: no-cache:HTTP/1.0 兼容写法,用于向后兼容旧客户端。

实际应用示例

例如,在登录后的用户中心页面,你可以在脚本最开始加入这些头信息:

<?php
// 禁止缓存
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

// 后续业务逻辑
session_start();
if (!isset($_SESSION['user'])) {
    header("Location: login.php");
    exit;
}
?>
<html>...</html>

注意事项

  • 这些 header() 调用必须在任何输出(包括空格、HTML)之前执行,否则会报“headers already sent”错误。
  • 对于AJAX请求返回的数据,同样建议加上这些头,避免浏览器缓存错误响应。
  • 某些代理服务器或CDN可能对缓存策略有额外配置,需结合服务端设置共同生效。
基本上就这些。正确设置这些头部,能有效防止页面被缓存,提升安全性和数据实时性。

今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

前往漫画官网入口并下载 ➜
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>