浏览器缓存机制

 前言:

每当我们第二次打开同一个网页的时候,

size部分的form memory cache即为从缓存中读取,

我们可以发现有很多内容都是直接从缓存中读取到的。

 

1、浏览器缓存的优缺点

优点:

  • 加快页面打开速度
  • 降低服务器压力
  • 减少网络损耗

 

缺点:  

  • 缓存没有清理机制,这些缓存的文件会永久地保存在机器上
  • 给开发带来困扰,更新了开发内容,但是浏览器还是读取的原来缓存的内容,新的开发内容无法体现在浏览器上

 

 

2、web缓存的分类

web缓存存在于服务器和客户端之间

 

a.数据库数据缓存

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

 

b.服务器端缓存

   代理服务器缓存

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

 

  CDN缓存

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

 

c.浏览器端缓存

浏览器缓存根据一套与服务器约定的规则进行工作,在同一个会话过程中会检查一次并确定缓存的副本足够新。如果你浏览过程中,比如前进或后退,访问到同一个图片,这些图片可以从浏览器缓存中调出而即时显现。

 

d.Web应用层缓存

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

 

 

3、浏览器缓存控制方法

 

a、meta标签控制

复制代码
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
复制代码

上述代码作用为告诉浏览器当前页面不需要被缓存,每次请求页面都需要去服务器请求资源。

 

b、http头信息控制

浏览器每次在向服务器发起 HTTP 请求获得请求结果(包含 HTTP 头信息各种字段)后,会根据响应报文中 HTTP 头的缓存标识字段(后面我们会知道这个字段就是 Expires 和 Cache-Control),来决定是否将请求结果存入浏览器缓存中。

浏览器每次在向服务器发起 HTTP 请求时,都会查找浏览器缓存中是否存在其相应的请求结果,然后根据缓存标识字段来决定其是直接使用之前缓存的副本还是再次向服务器发出 HTTP 请求。

对于每次浏览器<

50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信