没有合适的资源?快使用搜索试试~ 我知道了~
NULL 博文链接:https://maoting.iteye.com/blog/2275505
资源推荐
资源详情
资源评论
2016/2/2 透过浏览器看HTTP缓存大额_skylar博客园
http://www.cnblogs.com/skylar/p/browserhttpcaching.html#rd 1/4
主页 大额'SPAGE 关于我
代码改变世界 Posts72,Articles0,Comments504 Cnblogs Dashboard Login
大额大额哼歌等日落
主业程序媛,副业文艺逗逼女青年...
透过浏览器看HTTP缓存
2015051819:11by大额_skylar,5840阅读,43评论,收藏,编辑
作为前端开发人员,对于我们的站点或应用的缓存机制我们能做的似乎不多,但这些却是与我们关注的性能息息相关的部分,站点没有做任何缓存机制,我们的页面可能会因为资源的下载和渲染变得很慢,但
大家都知道去找前端去解决页面慢的问题而不会去找服务端的开发人员。因此,了解相关的缓存机制和充分的利用它似乎就变得必不可少。
web端的缓存机制其实有多种,我在这里只是学习和整理了以浏览器为载体的HTTP缓存机制,看看它是如何工作的。
文章目录:
一、web缓存的种类
二、为什么需要浏览器缓存?我们需要做些什么?
三、使用Etag验证缓存的HTTP响应
四、什么是CacheControl?如何定义CacheControl策略?
五、已经缓存的响应,如何更新或废弃?
六、对于缓存机制,现在可以做的有哪些?
七、扩展阅读
一、web缓存的种类
1.1数据库缓存
我们可能听说过memcached,它就是一种数据库层面的缓存方案。数据库缓存是指,当web应用的关系比较复杂,数据库中的表很多的时候,如果频繁进行数据库查询,很容易导致数据库不堪重荷。为了
提供查询的性能,将查询后的数据放到内存中进行缓存,下次查询时,直接从内存缓存直接返回,提供响应效率。
1.2CDN缓存
CDN缓存一般是由网站管理员自己部署,为了让他们的网站更容易扩展并获得更好的性能。通常情况下,浏览器先向CDN网关发起Web请求,网关服务器后面对应着一台或多台负载均衡源服务器,会根据
它们的负载请求,动态将请求转发到合适的源服务器上。从浏览器角度来看,整个CDN就是一个源服务器,从这个层面来说,浏览器和服务器之间的缓存机制,在这种架构下同样适用。
1.3代理服务器缓存
代理服务器是浏览器和源服务器之间的中间服务器,浏览器先向这个中间服务器发起Web请求,经过处理后(比如权限验证,缓存匹配等),再将请求转发到源服务器。代理服务器缓存的运作原理跟浏览
器的运作原理差不多,只是规模更大。
1.4浏览器缓存
每个浏览器都实现了HTTP缓存,我们通过浏览器使用HTTP协议与服务器交互的时候,浏览器就会根据一套与服务器约定的规则进行缓存工作。
1.5应用层缓存
应用层缓存是指我们在代码层面上做的缓存。通过代码逻辑,把曾经请求过的数据或资源等,缓存起来,再次需要数据时通过逻辑上的处理选择可用的缓存的数据。
二、为什么需要浏览器缓存?我们需要做些什么?
我们知道通过HTTP协议,在客户端和浏览器建立连接时需要消耗时间,而大的响应需要在客户端和服务器之间进行多次往返通信才能获得完整的响应,这拖延了浏览器可以使用和处理内容的时间。这就
增加了访问服务器的数据和资源的成本,因此利用浏览器的缓存机制重用以前获取的数据就变成了性能优化时需要考虑的事情。
那么有什么建议吗?当然。
为每个资源指定一个明确的缓存策略,用以定义资源是否可以缓存,由谁来缓存,可以缓存多久,并且在缓存时间到期时如何有效地重新验证。当服务器
Control和ETag。
说到浏览器中的缓存机制,其实就相当于HTTP协议定义的缓存机制,因为浏览器为我们实现了它。一般情况下我们会想到到HTTP响应头中的Expires,CacheControl,LastModified.IfModified
Since,Etag这样的与缓存相关的响应头信息。
但是这里我们说服务器返回一个响应时提供必要的CacheControl和Etag即可。这是为什么呢?
因为Cache‐Control与Expires的作用一致,Last-Modified与ETag的作用也相近。但它们有以下区别:
资源评论
weixin_38669628
- 粉丝: 385
- 资源: 6万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功