博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用HTML meta no-cache标签来禁用缓存
阅读量:4677 次
发布时间:2019-06-09

本文共 2021 字,大约阅读时间需要 6 分钟。

使用HTML meta no-cache标签来禁用缓存

如何完美滴使浏览器访问一个 HTML 页面时禁用缓存?

在测试某个 SPA 项目时,发现更改后 Chrome 浏览器页面刷新还是使用之前的版本。经调查发现 Chrome 默认缓存值为 300 秒。

经测试跨浏览器禁止缓存的 headers 如下:

Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0
Cache-Control is for HTTP 1.1
Pragma is for HTTP 1.0
Expires is for proxies
因为是 HTML 页面,可以于 HEAD 标签内直接添加 META 标签:
<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" />
其他文件就需要使用服务器设置文件控制 header
==============
如果不想彻底禁止缓存可以采用下面的
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="expires" content="0" />
==============
no-cache和no-store的区别:
no-cache 可以在本地缓存,可以在代理服务器缓存,但是这个缓存要服务器验证才可以使用
no-store 彻底得禁用缓冲,本地和代理服务器都不缓冲,每次都从服务器获取

在某些情况下,即使Cache-Control: no-cache在响应头文件中,IE6仍然会缓存文件。

W3C状态no-cache:
如果no-cache指令没有指定一个字段名称,那么缓存绝不能使用该响应来满足后续的请求,而不需要对源服务器进行成功的重新验证。

在我的应用程序中,如果访问了带有no-cache标题的页面,然后注销并在浏览器中回放,IE6仍然会从缓存中获取页面(没有向服务器发送新的/验证请求)。在no-store标题中添加停止它这样做。

但是如果你接受W3C的话,实际上没有办法控制这种行为:

历史缓冲区可以将这些响应作为其正常操作的一部分进行存储。
浏览器历史记录和常规HTTP缓存之间的一般差异在规范的特定子部分中描述。

=================

HTML中的Meta标签(no-cache)
根据HTML语言标准注释:meta标签是对网站发展非常重要的标签,它可以用于鉴别作者,设定页面格式,标注内容提要和关键字,以及刷新页面等等。

HTTP-EQUIV类似于HTTP的头部协议,它回应给浏览器一些有用的信息,以帮助正确和精确地显示网页内容。

1.expires(期限)

说明:可以用于设定网页的到期时间。一旦网页过期,必须到服务器上重新调阅。
用法:<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
注意:必须使用GMT的时间格式。

2.Pragma(cach模式)

说明:禁止浏览器从本地机的缓存中调阅页面内容。
用法:<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
注意:这样设定,访问者将无法脱机浏览。

3.Refresh(刷新)

说明:需要定时让网页自动链接到其它网页的话,就用这句了。
用法:<META HTTP-EQUIV="Refresh" CONTENT="5;URL=http://www.baidu.com">
注意:其中的5是指停留5秒钟后自动刷新到URL网址。
下面标签作用是20秒自动刷新当前页面:
<meta http-equiv="refresh" content="20" />

4.Set-Cookie(cookie设定)

说明:如果网页过期,那么存盘的cookie将被删除。
用法:<META HTTP-EQUIV="Set-Cookie" CONTENT="cookievalue=xxx;
expires=Wednesday, 21-Oct-98 16:14:21 GMT; path=/"> 
注意:必须使用GMT的时间格式。

转载于:https://www.cnblogs.com/zdz8207/p/vue-meta-no-cache.html

你可能感兴趣的文章
c语言基础知识要点
查看>>
Android模拟器无法上网访问网络失败解决办法
查看>>
node启动时, listen EADDRINUSE 报错;
查看>>
vue学习链接
查看>>
Systemd 初始化进程
查看>>
【C#学习笔记】文本复制到粘贴板
查看>>
Windows store 验证你的 URL http:// 和 https:// ms-appx:/// ms-appdata:///local
查看>>
python全栈开发_day7_字符编码,以及文件的基本读取
查看>>
js 验证码 倒计时60秒
查看>>
C#基础
查看>>
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 15. 用户管理
查看>>
杭电3466————DP之01背包(对状态转移方程的更新理解)
查看>>
JSP页面中的精确到秒的时间控件
查看>>
C#4.0语言新功能及应用 (1)
查看>>
http协议状态码对照表
查看>>
xmapp中 使用admin的权限打开mysql时出现错误1045
查看>>
chrome表单自动填充去掉input黄色背景
查看>>
使用hex6x 进行十六进制转换
查看>>
第一章 用标准I/O函数将标准输入复制到标准输出 1-3
查看>>
Remove Mapping
查看>>