相关文章推荐
灰常酷的炒面  ·  认证鉴权框架SpringSecurity-6 ...·  4 月前    · 
傲视众生的烈酒  ·  代表各种颜色的数字有哪些 - CSDN文库·  1 年前    · 
虚心的海龟  ·  vue中table表头单元格合并(附单行、多 ...·  1 年前    · 
霸气的沙滩裤  ·  如何处理How脚本中随机生成的post请求参 ...·  1 年前    · 
冷静的口罩  ·  JAVA中 就字母由 A=>Z 递增 和 ...·  1 年前    · 
Code  ›  前端 - HTML页面 <meta> 中设置了不缓存,后端返回头中设置了缓存时间页面会缓存吗? -
meta html代码 浏览器缓存 web前端开发
https://segmentfault.com/q/1010000043334912
狂野的荒野
2 年前
segmentfault segmentfault
注册登录
问答 博客 标签 活动
发现
✓ 使用“Bing”搜本站 使用“Google”搜本站 使用“百度”搜本站 站内搜索
注册登录
  1. 首页
  2. 问答
  3. 前端
  4. 问答详情

HTML页面 <meta> 中设置了不缓存,后端返回头中设置了缓存时间页面会缓存吗?

头像
陟上晴明
15.2k 4 29 54
发布于
1 月 14 日
浙江

对于 HTML 页面而言,如果页面的 <meta> 设置了不缓存( no-cache , no-store , Expires = 0 )。
但是 Nginx 配置了 HTML 页面的缓存时间,那么实际用户在浏览的时候是以什么为准呢?

前端 缓存 nginx html cache-control
阅读 3.1k
3 个回答
得票 最新
头像
唯一丶
20.7k 8 30 32
发布于
1 月 14 日
美国
更新于
1 月 14 日
✓ 已被采纳

理论上应该是 Response Headers 的优先级更高,因为一般会通过网关来控制缓存,HTML 经后端生成后,会经过网关返回回去,网关就可以在这个阶段设置缓存。

看 MDN 的 meta 描述关于 http-equiv 的介绍

属性定义了一个编译指示指令。这个属性叫做 http-equiv(alent) 是因为所有允许的值都是特定 HTTP 头部的名称

既然如此的话,浏览器就没必要再去阅读 HTML 文档来确定缓存了。

可以看一下这个文章: Caching Tutorial for Web Authors and Webmasters

Meta tags are easy to use, but aren’t very effective. That’s because they’re only honored by a few browser caches, not proxy caches (which almost never read the HTML in the document).

译: meta 标签很容易使用,但并不十分有效。这是因为它们只被少数浏览器的缓存所尊重,而不是代理缓存(几乎从不读取文档中的HTML)。

头像
dollor
2.4k 1 3 7
发布于
1 月 14 日
广西百色市凌云县

以 Nginx 配置的配置为准。
Nginx 配置后,会把缓存的指令填充在 HTTP 报头里,浏览器会根据 HTTP 的报头决定缓存时间。
至于 HTML 里的 meta 标签的缓存设置,这些一般是给搜索引擎用,浏览器其实是不认的。

HTTP的缓存指令通常是这样的:

HTTP缓存报头

头像
Meathill
19.9k 9 25 29
发布于
1 月 29 日
广东

印象里面,http <meta> 价值不大,且无法影响到网络中间的缓存,所以可以不管。基本上生效的还是 response header。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
被 1 篇内容引用
  • 头像
    vue 打包后 在 iframe 的缓存如何解决?
    2
推荐问题
  • 项目由多个人员(公司)开发,但是不想让他们互相看到彼此的代码,除了手动合并代码该怎么办?
    公司的系统由多个公司共同开发,但是领导考虑到git做分支会导致代码泄露,想寻求一个方法可以让各公司可以自己提交发布自己开发的部分。目前的方法是各个公司将代码写完后,由我统一手动合并发布,这样参与的公司越来越多,会导致忙不过来或者无法及时发布的问题。目前是一个公司开发一个模块就是一个仓库,每次其他公司...

    12 回答 12.2k 阅读

  • 各位,帮忙写个正则吧?
    必须包括,字母,数字,下划线,长度20个字符以内

    16 回答 4k 阅读

  • JS前端数字计算精度丢失问题,请问各位是怎么解决的?
    比如计算百分比,乘除法,js计算有小数点,精度会丢失,通过toFixed可以截取小数后几位,但是会四舍五入,而toPrecision则需要指定数字长度。现在要保留小数点后2位,请问怎么处理

    12 回答 3k 阅读 ✓ 已解决

  • 学习tailwind.css的必要性?
    现在有 CSS预处理器:less、scss等方案,这些方案基本上都可以简化 CSS 代码编写。现代CSS解决方案 tailwind.css 将 CSS 简化并书写到标签,这种书写方式与传统的CSS不同,最终呈现的效果是一样的。

    6 回答 1.2k 阅读 ✓ 已解决

  • 自增主键不会暴露数据吗?
    假如有一个get请求的接口,传的参数是id = 1这样子的,那么不是可以被用户拿到所有的数据了吗 {代码...} 像这种情况怎么处理呀如果这个情况的话,被别人调用了删除的接口不是很恐怖吗,因为删除接口也是传一个id过去后端就删除了

    10 回答 6k 阅读

  • 一些库的子依赖,是不是我不用安装就直接可以用?
    今天我用immer的时候,发现没有安装成功也可以直接用,给我惊奇坏了,一搜索发现是redux的一个依赖,我粘贴的这段代码是package-lock.json不是package.json,package.json里面完全找不到immerjs,也就是说我根本没安装过。这种情况下,我就直接可以用immer,不用安装了,对把??事实是上可以的,我就是想要再确认一下,这...

    4 回答 1.7k 阅读 ✓ 已解决

  • reduce按条件分组输出错误,为什么?
    要求: {代码...} 代码: {代码...} 输出:[ { name: 'Emily', age: 30 } ]

    7 回答 1.3k 阅读 ✓ 已解决

宣传栏
产品
热门问答
热门博客
热门课程
最新活动
翻译
勋章
课程
Java 开发课程
PHP 开发课程
Python 开发课程
前端开发课程
移动开发课程
资源
每周精选
用户排行榜
帮助中心
建议反馈
合作
关于我们
广告投放
职位发布
讲师招募
联系我们
合作伙伴
关注
产品技术日志
社区运营日志
市场运营日志
团队日志
社区访谈
条款
服务协议
隐私政策
下载 App

Copyright © 2011- 2023 SegmentFault. 当前呈现版本 23.08.18

浙ICP备15005796号-2 浙公网安备33010602002000号 ICP 经营许可 浙B2-20201554

杭州堆栈科技有限公司版权所有

 
推荐文章
灰常酷的炒面  ·  认证鉴权框架SpringSecurity-6--6.x版本升级篇_springsecurity版本对应关系-CSDN博客
4 月前
傲视众生的烈酒  ·  代表各种颜色的数字有哪些 - CSDN文库
1 年前
虚心的海龟  ·  vue中table表头单元格合并(附单行、多级表头代码)_vue.js_脚本之家
1 年前
霸气的沙滩裤  ·  如何处理How脚本中随机生成的post请求参数?-腾讯云开发者社区-腾讯云
1 年前
冷静的口罩  ·  JAVA中 就字母由 A=>Z 递增 和 Z=>A 递减的输出问题_java 字母递减-CSDN博客
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号