转自张鑫旭http://www.zhangxinxu.com/wordpress/2013/05/caching-tutorial-for-web-authors-and-webmasters/
什么是web缓存,为什么要使用它?
web缓存游走于服务器和客户端之间。这个服务器可能是源服务器(资源所驻留的服务器),数量可能是1个或多个;这个客户端也可能是1个或多个。web缓存就在服务器-客户端之间搞监控,监控请求,并且把请求输出的内容(例如HTML页面、图片和文件)(统称为副本)另存一份;然后,如果下一个请求是相同的URL,则直接请求保存的副本,而不是再次麻烦源服务器。
使用缓存的2个主要原因:
*降低延迟:缓存离客户端更近,因此,从缓存请求内容比从源服务器所用的时间更少,呈现速度更快,网站就显得更灵敏。
*降低网络传输:副本被重复使用,大大降低了用户的宽带使用,其实也是一种变相的省钱(如果流量需付费的话),同时保证了宽带请求再一个低水平上,更容易维护了。
web缓存的类型
1、浏览器缓存
在任何现代浏览器上折腾清除隐私数据的对话框,你很可能会注意到“缓存”这个设置项。
浏览器会在你的硬盘上专门开辟一个空间专门为你存储资源副本。浏览器缓存的工作规则很简单:检查以确保副本是最新的,通常只要一次会话(就是当前浏览器调用的这次)。
浏览器缓存在用户触发“后退”操作或点击一个之前看过的链接的时候很管用。同样,如果你在网站上访问同一张图片,该图片可以从浏览器缓存中调出并几乎立即显现出来。
2、代理服务器缓存
web代理服务器使用同样的缓存原理,只是规模更大。代理以同样的方式服务千万用户,大公司和ISP经常在他们的防火墙或者单独的设备上架设代理缓存。
由于代理服务器缓存并非客户端或者资源服务器的一部分,而是出于网络中,请求需要以某种方式路由到它们。一种方法是手动设置,高速浏览器你常用的代理服务器(翻墙的时候常用),另外就是使用拦截。拦截代理把web请求根据自己的底层网络重定向,因此,客户端无需配置,甚至都不需要知道他们。
代理缓存属于一种共享缓存;往往有大量的用户使用,因此,其在降低延时和网络流量上很有用,毕竟每个副本都被大量重用。
3、网关缓存
也被称为“反向代理缓存”或“替代缓存”。网关缓存同样是起中介作用的,不过不是(素不相识,不曾谋面的)网络管理员部署的,而多半是网站管理员(公司专门的运维工程师、或UED或程序组某人)他们自己部署,这样更容易扩展与维护。
可以有多种方法把请求路由到网关缓存,但通常使用某种形式的负载均衡器,使它们中的一个或多个看起来像是源服务器。内容分发网络(CDNS)为整个网络(或部分)分配网关缓存,然后把这些缓存卖给需要的网站。
释义:
1.负载均衡器:是一种采用各种分配算法把网络请求分散到一个服务器集群中的可用服务器上去,通过管理进入的web数据流量和增加有效的网络宽带,从而使网络访问者获得尽可能最佳的联网体验的硬件设备。
2.内容分发网络:即CND,基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的相应速度。
3.speedera:是一家全球性的内容服务提供商,它与北美、欧洲以及亚太地区的1000多家大型运营商都有联系,并为那些不想在自己服务器上寄存内容的公司提供软件下载、媒体及其他服务管理等业务。05年的时候被下面介绍的akamai以$130m的价格给收购了。
4.Akamai:美国Akamai是国际上最大的cdn服务商,它巨大的网络分发能力在峰值时可达到15tbps。Akamai公司是为数不多的旨在消除Internet瓶颈和提高下载速度的几家新公司之一,是一个致力于网络交通提速的“内容发布”公司,是波士顿高技术区最卓越的新兴企业之一。Akamai公司向全球企业提供发送互联网内容,汇流媒体和应用程序的服务(目前,该公司为15个国家的企业管理着8000多台服务器)。1998年,丹尼尔。
web缓存无害吗?为什么要鼓励缓存?
web缓存是互联网中最容易被误解的技术之一。网站管理员特别希望知道网站的一举一动,比方说多少人访问啦,访问时间啊什么的,而缓存会“隐藏”他们的用户,他们就无从得知到底谁访问了这个站点。
捡了芝麻丢西瓜,自认为放弃缓存可以精确跟踪用户,实际上,互联网中有太多的变数,想精确得到一张用户查看网站的图片?没那么简单的,亲!如果你很重视这个问题,恭喜你,本文正好提供了解决之道,既保证缓存友好,同时又能获得统计。
另外需要注意的是,缓存的内容都是旧的过时的。因此,如何准确更新就成了一个问题。不过不要担心,本文会向你展示如何配置服务器,让缓存就像你的女仆一样——随便调教。以上为缓存可能的“糟粕”,那他好的地方呢?缓存可以让你的web站点加载更快,让你的服务器和互联网链接间负担更小。这种差异会导致一些类似质的变化,一个网站要几秒钟才能加载出来,而另外一个充分发挥缓存的优势,几乎瞬间显示。用户自然更喜欢那个加载迅速的站点,访问也更多。
web缓存如何工作
所有的缓存都有一套自己的规则,可以用来决定何时跟缓存暧昧往来。其中部分规则设定在协议中(),部分由缓存管理员设置。(缓存管理员:如果指的是浏览器缓存,则有可能就是我们服务器专家同事,在服务器上配置一些缓存规则;如果是代理缓存,则指的就是处理代理服务器这块的管理人员。)