原来用的是 Expires 策略,浏览器可以直接从浏览器缓存读取数据,而无需再次请求,它的值对应一个 GMT,来告诉浏览器资源缓存过期时间,如果还没过该时间点则不发请求。

例如下面的例子,这是京东的首页里找的一个,时间都干到 2027 年了,现在的时间是 2017 年 7 月 20,肯定还没到失效时间,so 是 304,使用本地缓存,也就是说在失效时间之内,一直使用缓存,除非把缓存删了。

但是这是 http1.0 的东西,现在使用的是 http1.1 的,这个可以忽略了因为这个是获取的本地的时间,我们改动的话,会出现问题,现在都用 Cache-control 了。

cache-control 策略有的地方也叫新鲜度限值。

这个和上面说的 expires 效果是一样的,最大时间,用来控制浏览器是否直接从浏览器缓存取数据还是重新发请求到服务器取数据。

只不过 Cache-Control 的选择更多,设置更细致,如果同时设置的话,其优先级高于 Expires。

Cache-Control 可拥有如下值:

【注:本文源自网络文章资源,由站长整理发布】

Public:指定响应会被缓存,并且在多用户间共享。

Private:响应只作为私有的缓存(见下图),不能在用户间共享。如果要求 HTTP 认证,响应会自动设置为 private。。缓存只开放给某些特定的用户,比如服务器的用户,其他用户则不能缓存这些数据。

no-cache:指定不缓存响应,表明资源不进行缓存。

no-store:用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存,完全不存下來。

max-age:指示客户端该端时间内缓存都是最新的。单位为秒,就是在这个时间内,不会请求数据了,一直用的就是缓存。比如:Cache-Control:max-age=3600 表示 60 分钟之后过期,在这 60 分钟期间不会更新。

min-fresh :指示客户端希望获取一个在小于指定的时间内被更新过的资源,单位为秒:例如:Cache-Control:min-fresh =120 。向服务器获取 2 分钟内被更新过的资源。

max-stale:指示客户端可以接收超出超时期间的响应消息。例如:Cache-Control:max-stale =3600 ,向服务器获取超过缓存时间 2 分钟的资源。

web 前端中文站 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权

转载请注明原文链接:详解浏览器 Cache-Control 缓存策略

java cache-control_详解浏览器Cache-Control缓存策略相关推荐

  1. 开启注解缓存_Spring Boot 2.x基础教程:进程内缓存的使用与Cache注解详解

    随着时间的积累,应用的使用用户不断增加,数据规模也越来越大,往往数据库查询操作会成为影响用户使用体验的瓶颈,此时使用缓存往往是解决这一问题非常好的手段之一.Spring 3开始提供了强大的基于注解的缓 ...

  2. 关于Linux的缓存内存 Cache Memory详解

    30 (总结)关于Linux的缓存内存 Cache Memory详解 发表于: Linux, UNIX, 个人日记, 原创总结 | 作者: 谋万世全局者 标签: cache,Linux,Memory, ...

  3. 计算机缓存Cache以及Cache Line详解

    转载: 计算机缓存Cache以及Cache Line详解 - 围城的文章 - 知乎 https://zhuanlan.zhihu.com/p/37749443 L1,L2,L3 Cache究竟在哪里? ...

  4. CPU Cache 知识详解之Cache_Miss与替换策略(中)

    文章目录 引语 Cache Miss(缓存未命中) Compulsory Miss(Cold Miss)强制性未命中 Conflict Miss 冲突性未命中 Capacity Miss 容量性未命中 ...

  5. Java 线程池详解学习:FixedThreadPool,CachedThreadPool,ScheduledThreadPool...

    Java常用的线程池有FixedThreadPool和CachedThreadPool,我们可以通过查看他们的源码来进行学习. Java的源码下载参考这篇文章:Java源码下载和阅读(JDK1.8) ...

  6. 详解浏览器缓存 前端开发必会

    详解浏览器缓存 缓存可以说是性能优化中简单高效的一种优化方式了.一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷. 对于一个数据请求来 ...

  7. Java 动态代理详解 ( 附示例源码,建议收藏)

    动态代理在Java中有着广泛的应用,比如Spring AOP.Hibernate数据查询.测试框架的后端mock.RPC远程调用.Java注解对象获取.日志.用户鉴权.全局性异常处理.性能监控,甚至事 ...

  8. Java多线程进阶详解

    文章目录 1.卖票案例引入数据不安全问题 2.同步代码块 深入理解synchronized关键字 3.同步方法与静态同步方法 同步方法 静态同步方法 内置锁 静态同步方法与同步代码块共同使用 为什么要 ...

  9. 4.6 W 字总结!Java 11—Java 17特性详解

    作者 | 民工哥技术之路 来源 | https://mp.weixin.qq.com/s/SVleHYFQeePNT7q67UoL4Q Java 11 特性详解 基于嵌套的访问控制 与 Java 语言 ...

最新文章

  1. 论文简述 | TextSLAM:具有平面文本特征的视觉SLAM
  2. 关闭iOS软键盘的小方法
  3. ai/ml_您本周应阅读的有趣的AI / ML文章(8月15日)
  4. bind安装和主要配置
  5. 解决nginx下connect() to 127.0.0.1:3000 failed
  6. vue通过数据驱动实现表格行的增加与删除
  7. configparser读取含有中文的配置(Windows)
  8. wsdl 架构验证警告:来自命名空间_Let it go: DARTS 神经网络可微架构搜索 笔记
  9. 2011全年腾讯移动安全实验室手机病毒行业报告
  10. 【供应链架构day2】美团收单供应链系统的演进之路
  11. 100流明相当于多少w_lx和瓦数换算(1lx等于多少w)
  12. 第二章第三章 查找和排序(上)
  13. 软件外包还是自建团队
  14. 蔡徐坤一条微博转发过亿 幕后推手被判刑五年
  15. 成都市住房公积金提取指南办理手续流程
  16. Echarts 当Y轴取值存在正负值的时候,x轴文字与x轴贴合(不在底部显示)
  17. mysql豹_MySQL创建数据库与创建用户以及授权 小帅豹
  18. 实验一Linux开发环境搭建与LED点亮
  19. java数据结构课程设计_java数据结构课程设计
  20. TERMIN汤铭 FE1.1四端口USB2.0芯片

热门文章

  1. action script3.0殿堂之路_【日本乐坛传奇】松任谷由实是谁?新音乐女王的登基之路!...
  2. java定义一个方法,向控制台输出99乘法表
  3. linux依据时间过滤文件,详解Linux查找目录下的按时间过滤的文件
  4. php分解质因数,用PHP如何实现将一个整数分解为质因数的积?
  5. 【OpenCV 例程200篇】93. 噪声模型的直方图
  6. mysql的四层架构_分布式数据库服务器的四层架构
  7. vue点击其它侧边栏收缩_企业微信聊天侧边栏功能怎么开启?聊天侧边栏有什么用?...
  8. 导出excel数字前面的0消失_Excel操作中常见的3大坑你遇到过吗?遇到应该这么解决...
  9. 服务器推技术相关网址
  10. 使用Xftp5连接云服务器