Web缓存游走于服务器和客户端之间,这个服务器可能是源服务器(资源所驻留的服务器),数量可能是1个或多个;这个客户端也可能是1个或多个,Web缓存就在服务器与客户端之间搞监控,监控请求,并且把请求输出的内容(如html、 图片和文件)另存一份(以下统称副本吧),如果下一个请求是相同的URL,则直接请求保存的副本,而不是再次麻烦源服务器。

Web缓存的作用:

降低服务器压力
给网络资源设定有效期之后,用户可以重复使用本地的缓存,减少对源服务器的请求,间接降低服务器的压力。同时,搜索引擎的爬虫机器人也能根据过期机制降低爬取的频率,也能有效降低服务器的压力。

减少网络延迟,加快页面打开速度
带宽对于个人网站运营者来说是十分重要,而对于大型的互联网公司来说,可能有时因为钱多而真的不在乎。那Web缓存还有作用吗?答案是肯定的,对于最终用户,缓存离客户端更近,因此从缓存请求内容比从源服务器所用时间更少。

减少网络带宽消耗
当Web缓存副本被使用时,只会产生极小的网络流量,大大降低了用户的带宽使用,其实也是一种变相的省钱(如果流量要付费的话)。

Web缓存的类型

1. 浏览器端缓存:
浏览器会在你的硬盘上专门开辟一个空间专门为你存储资源副本,浏览器缓存的工作规则很简单:检查以确保副本是最新的,通常只要一次会话(就是当前浏览器调用的这次)。
浏览器缓存在用户触发“后退”操作或点击一个之前看过的链接的时候很管用,同样,如果你在网站上访问同一张图片,该图片可以从浏览器缓存中调出并几乎立即显现出来。

2. Web应用层缓存:
应用层缓存指的是从代码层面上,通过代码逻辑和缓存策略,实现对数据,页面,图片等资源的缓存,可以根据实际情况选择将数据存在文件系统或者内存中,减少数据库查询或者读写瓶颈,提高响应效率。

3. 数据库数据缓存:
Web应用中特别是SNS类型的应用,往往关系比较复杂,数据库表繁多,如果频繁进行数据库查询,很容易导致数据库不堪重荷。为了提供查询的性能,会将查询后的数据放到内存中进行缓存,下次查询时直接取内存缓存直接返回,提供响应效率。比如常用的缓存方案有memcached等。

4. 服务器端缓存:
1)代理服务器缓存
Web代理服务器使用同样的缓存原理,只是规模更大。代理以同样的方式服务千万用户,大公司和ISP(Internet Server Provider, Internet服务提供商)经常在他们的防火墙或者单独的设备(也被称为中介(intermediaries))上架设代理缓存。

由于代理服务器缓存并非客户端或者源服务器的一部分,而是处于网络中,请求需要以某种方式路由到它们。一种方法是手动设置,告诉浏览器的你常用的代理服务器(翻墙的时候常用的),另外就是使用拦截,拦截代理(Interception proxies)把Web请求根据自己的底层网络重定向,因此,客户端无需配置,甚至都不需要知道它们。

代理缓存属于一种共享缓存;往往有大量的用户使用,因此,其在降低延时和网络流量上很有用,毕竟每个副本都被大量重用。

2) 网关缓存
也被称为“反向代理缓存”或“替代缓存”,网关缓存同样是起中介作用的,不过不是网络管理员部署的,而多半是网站管理员(公司专门的运维工程师)他们自己部署的,这样更容易扩展与维护。

可以有多种方法把请求路由到网关缓存,但通常使用某种形式的【负载均衡器】,使它们中的一个或多个看起来像是源服务器,【内容分发网络】(CDN)为整个网络(或部分)分配网关缓存,然后把这些缓存卖给需要的网站。Speedera和Akamai就是代表性的网络内容发布商。

PS:
负载均衡器:是一种采用各种分配算法把网络请求分散到一个服务器集群中的可用服务器上去,通过管理进入的Web数据流量和增加有效的网络带宽,从而使网络访问者获得尽可能最佳的联网体验的硬件设备。

内容分发网络:即CDN, 基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

木有了,该分类中最后一篇了: 下一篇
最近更新:2015-10-11
转载注明:http://www.ddbing.com/detail/49.html  [复制链接]
尊重知识|文明读者
boxUI on the road
最新评论