上一章介绍了缓存新鲜度判断的基本原理,本章对于缓存新鲜度判断方法进行一些补充(更新间隔略长略长。。)。

          关于缓存的TIPS

  服务器可以通过http定义的几种header对可以缓存数据的存在时间进行控制,按照其优先级由高到低分别为

  1. Cache-Control:no-store
  2. Cache-Control:no-cache
  3. Cache-Control:must-revalidata
  4. Cache-Control:  max-age=
  5. Expires:{date}
  6. 不附加任何信息

  Cache-Control:no-store 首部会禁止缓存对于响应进行复制,响应由服务器回送出,然后由缓存转发到客户端,转发完毕后会把缓存上的响应副本删除。

  Cache-Control:no-cache 实际上是允许响应缓存在本地缓存中的,只不过要使用缓存中的文件,则必须与原始服务器通信,验证缓存内容是否足够新鲜。如果足够新鲜才可以会送给客户端使用。

  Cache-Control:must-revalidata 有些缓存为了提高性能,会选择性的向客户端提供一些过期的数据。must-revalidata首部告诉缓存,如果要提供过期的数据给客户端,则必须向服务器验证数据的新鲜度,验证通过才可以使用过期的数据。缓存可以自由的向客户端提供新鲜的数据

  Cache-Control:max-age 该首部表示从服务器将数据传输过来的时间点起,可以认为该数据新鲜的秒数。服务器可以将max-age设置为0,从而让每次访问时缓存都进行刷新。

    Cache-Control:max-age=0

  Expires:{date} 该首部直接设置缓存的过期日期。由于很多服务器的时钟都不同步,使用绝对的时间点设置过期时间可能出现问题。

          客户端控制缓存新鲜度

  浏览器都有刷新或者重载按钮,可以强制浏览器或者代理缓存对可能过期的内容进行刷新。刷新按钮会在请求header中加入Cache-Control首部,这个请求会强制进行再验证,或者直接从原始服务器获取资源。刷新的确切行为会依浏览器类型而不同。

客户端Cache-Control请求指令
Cache-Control:max-stable={s} 缓存可以随意提供过期的数据,如果指定了{s},则告知缓存在{s}这个时间段内,数据不能过期。
Cache-Control:mini-fresh={s} 至少在未来{s}秒内,缓存提供的数据必须是新鲜的。
Cache-Control:max-age={s} 缓存不可以返回缓存时间超过{s}秒的数据。
Cache-Control:no-cache 客户端只接受进行过新鲜度再验证的缓存数据或者直接从服务器返回的数据。
Cache-Control:no-store 缓存应该删除所有客户端相关的缓存数据。
Cache-Control:only-if-cached 只有缓存中有数据副本,客户端才会获取一份副本。

    

         HTML中的HTTP-EQUIV

  为了让方便在网站项目中控制缓存,HTML提供了<META HTTP-EQUIV>标签,这个标签可以设置与文档有关的header。

  

 <HTML>
<HEAD>
<TITLE>TEST</TITLE>
<META HTTP-EQUIV="Cache-control" CONTENT="no-cache">
</HEAD>
......

  该标签可以在请求中插入一个首部字段,首部名称由属性HTTP-EQUIV 设置,首部内容由CONTENT设置。

  这个标签让我们可以让我们在页面中方便的设置响应首部,但是由于解析这个元素会给服务器增加额外的负担,所以只有很少web服务器和代理支持这个特性。因此,不建议通过设置这个标签来控制缓存,正确的配置header中的字段才是可靠的缓存控制方法。

  

  

关于缓存的tips——HTTP权威指南读书心得(十三)的更多相关文章

  1. [原创]Java性能优化权威指南读书思维导图

    [原创]Java性能优化权威指南读书思维导图 书名:Java性能优化权威指南 原书名:Java performance 作者: (美)Charlie Hunt    Binu John 译者: 柳飞 ...

  2. [原创]Java性能优化权威指南读书思维导图4

    [原创]Java性能优化权威指南读书思维导图4

  3. [原创]Java性能优化权威指南读书思维导图3

    [原创]Java性能优化权威指南读书思维导图3

  4. [原创]Java性能优化权威指南读书思维导图2

    [原创]Java性能优化权威指南读书思维导图2

  5. HTTP权威指南读书笔记

    HTTP权威指南笔记 读书有两种境界,第一种境界是将书读薄,另一种是读厚.本篇文章就是HTTP权威指南的读书笔记,算是读书的第一重境界,将厚书读薄.文章对HTTP的一些关键概念做了比较详细的概述,通读 ...

  6. [置顶] PHP开发实战权威指南-读书总结

    从今年开始,断断续续学习PHP已经有4个月了. 最初,认真学习PHP几天,就弄WordPress搭建了一个个人博客,这也符合技术人的实践理念. 最近,重温PHP开发实战权威指南,做点总结,整理下自己学 ...

  7. 经典的性能优化最佳实践 web性能权威指南 读书笔记

    web性能权威指南 page 203 经典的性能优化最佳实践 无论什么网络,也不管所用网络协议是什么版本,所有应用都应该致力于消除或减 少不必要的网络延迟,将需要传输的数据压缩至最少.这两条标准是经典 ...

  8. PHP开发实战权威指南-读书总结

    从今年开始,断断续续学习PHP已经有4个月了.最初,认真学习PHP几天,就弄WordPress搭建了一个个人博客,这也符合技术人的实践理念. 最近,重温PHP开发实战权威指南,做点总结,整理下自己学习 ...

  9. Tomcat权威指南-读书摘要系列2

    2. 配置Tomcat 2.1. 重定向Web应用程序的目录 将工程文件与Tomcat分离 复制conf和webapps文件夹到分离目录: 配置CATALINA_BASE环境变量,值为分离目录: 2. ...

随机推荐

  1. Parameters

    Quote from: http://ss64.com/nt/syntax-args.html Parameters A parameter (or argument) is any value pa ...

  2. SETLOCAL

    Quote from: http://ss64.com/nt/setlocal.html SETLOCAL Set options to control the visibility of envir ...

  3. LINQ to Entities 查询注意事项

    1> 排序信息丢失 如果在排序操作之后执行了任何其他操作,则不能保证这些附加操作中会保留排序结果.这些操作包括 Select 和 Where 等.另外,采用表达式作为输入参数的 First 和 ...

  4. Python 集合(set)使用

    1.python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差 ...

  5. cocos2d-x笔记5: 通过jni实现C++调用Java

    Cocos2d-x的跨平台性很强大,但是偶尔也需要平台的原生API结合. C++在Win32平台下简单的很,C++可以直接用MFC或者调用Win32API. Ios在XCode下直接就能C++和OC混 ...

  6. 跨域Ajax请求WebService方法

    一.允许跨域Ajax请求,更改如下配置: 在要调用的WebService上面添加特性标签: 二.以如下返回用户信息的WebService方法为例 三.在另一个网站上通过Ajax访问webService ...

  7. Entity Framework Code First 映射继承关系

    转载 http://www.th7.cn/Program/net/201301/122153.shtml Code First如何处理类之间的继承关系.Entity Framework Code Fi ...

  8. Quartz2D 备忘 + 学习

    Quartz2D Quartz2D是支持iOS和Mac系统的二维绘制引擎,它可以绘制: 绘制图形(图形,线条,圆等) 绘制文字 绘制/生成图片 读取/生成PDF 截图 Quartz2D主要功能就是以画 ...

  9. XMLHttpRequest 使用概括

    ***********************************************XMLHttpRequest对象初始化:********************************* ...

  10. 破解EXCEL2007的密码

    破解EXCEL2007的密码 xshzhao (斑竹)顶楼举报 我有一个EXCEL2007文件(后缀是XLSX),由于设置了打开密码.现在密码搞忘了,这个文件对我很重要. 我试过了Office Pas ...