缓存-理解浏览器缓存
2014-04-07 09:14
169 查看
浏览器缓存在本地的资源通过三个机制控制:新的、验证的和失效的(freshness,validation,invalidation)。这三者属于HTTP的一部分,并且定义在HTTP消息头里。
新的:允许应答消息直接使用,而不需要经过服务器检查,可以同时被服务器和客户端控制。例如,Expires过期的消息头设置了资源过期的时间, 而Cache-Control:maxage则提供的是应答消息需要经过多久再次刷新。
下面的代码展示了如何在服务端通过代码设置HTTP消息头:
public ActionResult CacheDemo()
{
//设置缓存控制头的值
[HttpCacheability]
//设置缓存控制:公开指定师傅可以被客户端或者代理缓存
Response.Cache.SetCacheability(HttpCacheability.Public);
//设置缓存控制最大时间为20分钟
Response.Cache.SetMaxAge(DateTime.Now.AddMinutes(20));
//设置过期时间为 11:00 P.M
Response.Cache.SetExpires(DateTime.Parse("11:00:00PM"));
return View();
}
验证(Validation):用来检测陈旧的缓存数据师傅依然有效。例如,如果缓存的应答数据包含 Last-Modified消息头,则缓存就可以使用If-Modifiend-Since消息头来检查内容师傅更新过。这是相当弱的验证形式。
新的:允许应答消息直接使用,而不需要经过服务器检查,可以同时被服务器和客户端控制。例如,Expires过期的消息头设置了资源过期的时间, 而Cache-Control:maxage则提供的是应答消息需要经过多久再次刷新。
下面的代码展示了如何在服务端通过代码设置HTTP消息头:
public ActionResult CacheDemo()
{
//设置缓存控制头的值
[HttpCacheability]
//设置缓存控制:公开指定师傅可以被客户端或者代理缓存
Response.Cache.SetCacheability(HttpCacheability.Public);
//设置缓存控制最大时间为20分钟
Response.Cache.SetMaxAge(DateTime.Now.AddMinutes(20));
//设置过期时间为 11:00 P.M
Response.Cache.SetExpires(DateTime.Parse("11:00:00PM"));
return View();
}
验证(Validation):用来检测陈旧的缓存数据师傅依然有效。例如,如果缓存的应答数据包含 Last-Modified消息头,则缓存就可以使用If-Modifiend-Since消息头来检查内容师傅更新过。这是相当弱的验证形式。
相关文章推荐
- 浏览器缓存工作机理理解
- 彻底理解浏览器缓存机制
- 彻底理解浏览器缓存机制
- 深入理解PHP高级技巧、面向对象与核心技术之调整浏览器缓存
- 五分钟理解什么是浏览器缓存?
- 浏览器头信息,及缓存策略理解
- [原创]java WEB学习笔记45:自定义HttpFilter类,理解多个Filter 代码的执行顺序,Filterdemo:禁用浏览器缓存的Filter,字符编码的Filter,检查用户是否登陆过的Filter
- 浏览器缓存工作机理理解
- 怎么清除浏览器缓存中的内容
- 前端开发JavaScript清除浏览器缓存的方法
- 浏览器不缓存页面
- 缓存机制理解及C#开发使用
- 浏览器缓存机制
- php、ThinkPHP禁用浏览器缓存
- 对“缓存”的全面理解和优化
- 禁止浏览器缓存数据
- 浏览器与CDN缓存行为
- web网站css,js更新后客户浏览器缓存问题,需要刷新才能正常展示的解决办法
- 设置html页面不让浏览器缓存的方法
- 抓包工具,查看浏览器缓存的密码以及网络密码