在前端开发中,性能一直是被大家重视的点,随着网站用户数和访问量愈大,应用也需要支撑更多的并发量。但是应用服务器资源和数据库每秒能接受的请求次数是有限的,如何能够有效利用有限的资源来提供尽可能大的吞吐量,一个有效的办法就是引入缓存。每个环节中请求可以从缓存中直接获取目标数据并返回,从而减少计算量,有效提升响应速度,让有限的资源服务更多的用户。

一、Web缓存是什么

Web缓存(或HTTP缓存)是用于临时存储(缓存)Web文档(如HTML页面和图像),以减少服务器延迟的一种信息技术。Web缓存系统会保存下通过这套系统的文档的副本;如果满足某些条件,则可以由缓存满足后续请求。Web缓存系统既可以指设备,也可以指计算机程序。

二、Web缓存的特点

通常所说的Web缓存指的是可以自动保存常见http请求副本的http设备。对于前端开发者来说,浏览器缓存充当了重要角色。除此外常见的还有各种各样的代理服务器也可以做缓存。当Web请求到达缓存时,缓存从「本地副本」中提取这个副本内容而不需要经过服务器。

这带来了以下优点:

1.缓存减少了冗余的数据传输,节省流量;

2.缓存缓解了带宽瓶颈问题。不需要更多的带宽就能更快加载页面;

3.缓存缓解了瞬间拥塞,降低了对原始服务器的要求;

4.缓存降低了距离延时, 因为从较远的地方加载页面会更慢一些。

三、为什么要用Web缓存

3.1请求更快

通过将内容缓存在本地浏览器或距离最近的缓存服务器(如CDN),在不影响网站交互的前提下可以大大加快网站加载速度。

3.2减少网络带宽消耗

当Web缓存副本被使用时,只会产生极小的网络流量,可以有效的降低运营成本。

3.3降低服务器压力

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

四、Web缓存的分类

4.1数据库数据缓存

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

4.2浏览器端缓存

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

4.3服务器端缓存

4.3.1CDN

即内容分发网络,部署在距离终端用户最近的网络服务商,用户的网络请求总是先到达他的网络服务商那里,在这里缓存网站的一些静态资源,可以就近以最快的数据返回给用户,如视频网站和门户网站会将用户访问量大的热点内容缓存在CDN。

4.3.2代理服务器缓存

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

4.4Web应用层缓存

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

五、总结

远齐科技基于成熟的软件架构、互联网、物联网、大数据、人工智能等技术构建面向未来的集成开发平台系统。在自有集成开发平台基础上,基于最佳业务实践开发出丰富的软件功能模块、业务系统,为企业提供高效的定制化开发服务。

关键词:Web缓存

上一篇:开源应用容器引擎—Docker 下一篇:再见2020,你好2021