网页的缓存是由HTTP消息头中的“Cache-control”来控制的,

max-age:(只接受 Age 值小于 max-age 值,并且没有过期的对象)
max-stale:(可以接受过去的对象,但是过期时间必须小于 max-stale 值)
min-fresh:(接受其新鲜生命期大于其当前 Age 跟 min-fresh 值之和的缓存对象)
响应:public(可以用 Cached 内容回应任何用户)
private(只能用缓存内容回应先前请求该内容的那个用户)
no-cache(可以缓存,但是只有在跟WEB服务器验证了其有效后,才能返回给客户端)
max-age:(本响应包含的对象的过期时间)
ALL: no-store(不允许缓存)

默认为private。其作用根据不同的重新浏览方式分为以下几种情况:
(1) 打开新窗口
如果指定cache-control的值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问服务器。而如果指定了max-age值,那么在此值内的时间里就不会重新访问服务器,例如:
Cache-control: max-age=5
表示当访问此网页后的5秒内再次访问不会去服务器
(2) 在地址栏回车
如果值为private或must-revalidate(和网上说的不一样),则只有第一次访问时会访问服务器,以后就不再访问。如果值为no-cache,那么每次都会访问。如果值为max-age,则在过期之前不会重复访问。
(3) 按后退按扭
如果值为private、must-revalidate、max-age,则不会重访问,而如果为no-cache,则每次都重复访问
(4) 按刷新按扭
无论为何值,都会重复访问

当指定Cache-control值为“no-cache”时,访问此页面不会在Internet临时文章夹留下页面备份。
另外,通过指定“Expires”值也会影响到缓存。例如,指定Expires值为一个早已过去的时间,那么访问此网时若重复在地址栏按回车,那么每次都会重复访问:
Expires: Fri, 31 Dec 1999 16:00:00 GMT

在ASP中,可以通过Response对象的Expires、ExpiresAbsolute属性控制Expires值;通过Response对象的CacheControl属性控制Cache-control的值,例如:
Response.ExpiresAbsolute = #2000-1-1# ' 指定绝对的过期时间,这个时间用的是服务器当地时间,会被自动转换为GMT时间
Response.Expires = 20  ' 指定相对的过期时间,以分钟为单位,表示从当前时间起过多少分钟过期。
Response.CacheControl = "no-cache"

转载于:https://blog.51cto.com/ludihua/1907521

http头部消息中的cache-control解释相关推荐

  1. Linux中buff和cache的解释与区别

    目录 什么是 buffer/cache? 什么是 page cache? 什么是 buffer cache? buff和cache的区别 因为本人对buff/cache认识很模糊,所以记录一下从其他博 ...

  2. 消息中的wParam和lParam

    具体是这么说: "在Win 3.x中,WPARAM是16位的,而LPARAM是32位的,两者有明显的区别.因为地址通常是32位的,所以LPARAM 被用来传递地址,这个习惯在Win32 AP ...

  3. cache-control_网站 cache control 最佳实践

    有时,当第二次访问网站时,看起来比较怪,样式不正常. 通常,是因为 cache control 缓存控制策略定义不正确,导致服务端最新部署之后客户端没有接收到最新的更改. 本文将向您展示正确的缓存设置 ...

  4. Oracle 中control_file_record_keep_time参数的解释

    Oracle基于RMAN的备份方式,可分为以catalog 和nocatalog的两种方式进行备份管理.其中,catalog的方式需要一个catalog目录数据库,这个数据库一般运行在另外一台服务器上 ...

  5. 在VC++中使用Tab Control控件

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 系统环境 ...

  6. oracle中imp命令具体解释

    oracle中imp命令具体解释 Oracle的导入有用程序(Import utility)同意从数据库提取数据,而且将数据写入操作系统文 件.imp使用的基本格式:imp[username[/pas ...

  7. MFC中使用TAB Control控件

    2019独角兽企业重金招聘Python工程师标准>>> MFC中使用TAB Control控件 MFC中使用TAB Control控件(转) 假如我现在有个SDI程序,View是Fo ...

  8. sql中return/break/continue解释

    sql中return/break/continue解释 2016-07-20 11:12:28 一,return:从查询或过程中无条件退出.可在任何时候用于从过程.批处理或语句块中退出.RETURN ...

  9. 【Manual】Memory Cache Control

    [Intel-64 and IA-32 Architectures Software Developer's Manual]Chapter 11 本章节关于 memory cache.cache co ...

最新文章

  1. hdaoop下HDFS操作
  2. 干货 | BBR及其在实时音视频领域的应用
  3. Git区分文件名大小写
  4. Java多线程基础学习一:线程的6种状态和相互转化
  5. 河北四部门联合打击虚开骗税违法行为
  6. 微信小程序API之setInterval
  7. Eclipse @override报错解决
  8. 电视ping功能测试软件,PingMon(超级Ping监测工具)
  9. 100 句世界哲学语录【句句珠玑细细品味】
  10. Android studio 4.0 offline mode
  11. 基于PHP的超市进销存管理系统
  12. 2020年7月各大城市与程序员平均工资排行榜
  13. 全新UI任务悬赏抢单源码-附带简单安装教程
  14. 计算机专业当兵优势,本科应届毕业生直接“入伍”有什么优势?看完你就明白了...
  15. 在pycharm中直接安装第三方包时出错提示无合适版本---解决方案
  16. memcache缓存
  17. 国标GPS坐标转高德坐标java
  18. STM32CubeMX提示ST
  19. 给定三条边,请你判断一下能不能组成一个三角形。
  20. informix-onbar

热门文章

  1. python mysql
  2. 在 VMware ESXi 5.0 上安装万兆网卡驱动
  3. AWS开源Firecracker,一种运行多租户容器服务的新虚拟化技术
  4. 修改Java-source版本
  5. 201621123075作业12-流与文件
  6. Java语言的基础知识9
  7. VB6基本数据库应用(五):数据的查找与筛选
  8. Exchange企业实战技巧(3)配置Exchange证书
  9. C++用数组和链表分别实现Queue
  10. 合并下载的Solaris镜像为DVD文件的方法