如何设置浏览器不缓存网页

设置浏览器不缓存网页可以通过多种方法实现,以下是一些常见的策略:

HTTP响应头控制:

  • Cache-Control:这是最常用的HTTP头之一,用于控制响应的缓存行为。例如:

    Cache-Control: no-cache, no-store, must-revalidate

  1. no-cache:表示必须先向服务器验证实体,才能使用缓存的实体。
  2. no-store:表示不缓存请求或响应的任何部分。
  3. must-revalidate:表示缓存服务器在响应客户端请求之前,必须先向源服务器验证缓存的响应。
  • Pragma:HTTP/1.0向后兼容的头,等同于Cache-Controlno-cache

    Pragma: no-cache

  • Expires:设置一个过去的时间,使得响应被视为已经过期。

    Expires: Thu, 01 Jan 1970 00:00:00 GMT

HTML Meta标签:

在HTML文档的<head>部分添加以下meta标签:

XML 复制代码
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />

URL参数:

在URL后添加一个查询参数,比如时间戳,使得每次请求的URL都不同,从而避免缓存:

XML 复制代码
<img src="image.png?t=1234567890" alt="Image" />
<script src="script.js?v=1.2.3"></script>

Nginx禁止浏览器缓存网页:

bash 复制代码
# 设置禁用浏览器缓存
add_header Cache-Control "no-cache, no-store, must-revalidate";
# 设置缓存过期时间为60秒
add_header Cache-Control "public, max-age=60";

这里expires -1;表示过期时间为过去,即告诉浏览器页面已经过期,不应该被缓存。Cache-Control响应头的no-cache、no-store和must-revalidate指令进一步强化了不缓存的要求。

bash 复制代码
location / {
    expires -1;
    add_header Cache-Control "no-cache, no-store, must-revalidate";
    add_header Pragma "no-cache";
    add_header Expires "0";
}

修改配置文件后重启Nginx服务以应用更改:

bash 复制代码
systemctl restart nginx
相关推荐
TING沫2 小时前
缓存id路由页面返回,历史路由栈
vue.js·缓存
何怀逸3 小时前
MySQL的buffer pool的缓存中,修改语句在执行时,是先更新buffer pool,还是先更新数据库
数据库·mysql·缓存
Hello-Mr.Wang6 小时前
nginx与openSSL版本不兼容问题
linux·服务器·nginx
奔跑吧邓邓子6 小时前
【商城实战(22)】商城性能优化秘籍:从前端到后端的实战攻略
redis·缓存·性能优化·springboot·uniapp·element plus·商城实战
绿算技术7 小时前
DPU的架构:模块化与可扩展性
科技·算法·缓存·架构
上趣工作室7 小时前
在 UniApp 开发的网站中使图片能够缓存,不一直刷新
缓存·uni-app
椰椰椰耶9 小时前
【redis】应用场景:缓存功能和计数功能
数据库·redis·缓存
一直在学习的小白~11 小时前
Nginx 服务器,Apache 服务器,IIS 服务器的区别
服务器·nginx·apache
他不爱吃香菜11 小时前
Nginx正向代理HTTPS配置指南(仅供参考)
网络·网络协议·tcp/ip·nginx·http·https·信息与通信
羑悻的小杀马特11 小时前
蓝耘携手通义万象 2.1 图生视频:开启创意无限的共享新时代
服务器·nginx·音视频·ai大模型·蓝耘·通义万象 2.1