Web缓存之作用与类型

@心欲无痕  February 14, 2019

Web缓存之作用与类型

什么是Web缓存?

Web缓存是指一个Web资源(html页面、css、js等文件)存在于服务器和客户端之间的一个副本。 缓存会根据进来的请求保存输出内容的副本;当下一个请求来到的时候,如果是相同的URL,缓存会根据缓存的机制决定是否使用副本来响应请求。比较常见的就是浏览器会缓存访问过的网站网页,当用户再次访问这个URL地址的时候,如果网页没有更新,就不会再次下载网页,而是直接使用本地缓存的网页副本。只有明确指定资源已经更新,浏览器才会再次下载网页。至于浏览器和网站服务器是如果标识网站页面是否更新的机制,下面会介绍。

Web缓存的作用?
  • 减少网络的带宽资源消耗

对于网站运营者或者用户而言,带宽都意味着金钱,过多的带宽消耗,只会便宜了网络运营商。如果使用Web缓存副本,只会产生极小的网络流量,可以有效的降低运营成本。

  • 降低服务器压力

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

  • 减少网络延迟,加快页面的打开速度

带宽对于个人网站运营者来说十分重要,而对于大型的互联网公司而言,可能有时因为钱多而真的不在乎,对于最终用户,缓存的使用能够明显加快页面打开速度,达到更好的体验。

Web缓存的类型?
  • 数据库数据缓存

Web应用,有些类型的应用相对复杂,数据库表繁多,如果频繁进行数据库查询,很容易导致数据库不堪负载。为了提供查询的性能,会将查询后的数据放到内存中进行缓存,下次查询时,直接从内存缓存直接返回,提供响应效率,比方说:Redis或者Memcached。

  • 服务器端缓存

    • 代理服务器缓存

    代理服务器是浏览器与源服务器之间的中间服务器,浏览器先向这个中间服务器发起Web请求,经过处理后(权限验证,缓存匹配),再将请求转发到源服务器。代理服务器缓存的运作原理跟浏览器的运行原理差不多,只是规模更大,可以把他理解为一个共享缓存,不只为一个用户服务,一般为大量用户提供服务,因此在减少相对时间和带宽使用方面很有效,同一个副本会被重用多次。常见的代理服务器缓存解决方案有Squid或者Nginx。

    • CDN缓存

    CDN也叫网关缓存、反向代理缓存。CDN缓存一般是由网站管理员自己部署,为了让他们的网站更容易扩展并获得更好的性能浏览器先向CDN网关发起WEB请求,网关服务器后面对应着一台或者多台负载均衡服务器,会根据他们之间的伏在请求,动态将请求转发到合适的源服务器上。虽然在负载均衡源服务器之间的缓存没法共享,但是却拥有更好的扩展性,从浏览器角度看,整个CDN就是一个源服务器。

  • 浏览器端缓存

浏览器缓存根据一套与服务器约定的规则进行工作,在同一个会话过程中会检查一次并确定缓存的副本足够新。如果您在浏览过程中,访问同一个资源(假设是图片),这些资源就可以从浏览器缓存中调出即时显示。

  • Web应用层缓存

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


添加新评论