美文网首页前端缓存
【前端】作为前端应当了解的Web缓存知识

【前端】作为前端应当了解的Web缓存知识

作者: caikunhai | 来源:发表于2017-02-08 11:35 被阅读56次

缓存优点

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

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

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

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

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

缓存种类

缓存可以是单个用户专用的,也可以是多个用户共享的。专用缓存被称为私有缓存,共享的缓存被称为公有缓存。

私有缓存

私有缓存只针对专有用户,所以不需要很大空间,廉价。Web浏览器中有内建的私有缓存——大多数浏览器都会将常用资源缓存在你的个人电脑的磁盘和内存中。如Chrome浏览器的缓存存放位置就在:C:\Users\Your_Account\AppData\Local\Google\Chrome\User Data\Default中的Cache文件夹和Media Cache文件夹。

公有缓存

公有缓存是特殊的共享代理服务器,被称为缓存代理服务器或代理缓存(反向代理的一种用途)。公有缓存会接受来自多个用户的访问,所以通过它能够更好的减少冗余流量。

下图中每个客户端都会重复的向服务器访问一个资源(此时还不在私有缓存中),这样它会多次访问服务器,增加服务器压力。而使用共享的公有缓存时,缓存只需要从服务器取一次,以后不用再经过服务器,能够显著减轻服务器压力。

事实上在实际应用中通常采用层次化的公有缓存,基本思想是在靠近客户端的地方使用小型廉价缓存,而更高层次中,则逐步采用更大、功能更强的缓存在装载多用户共享的资源。

no-store 绝对禁止缓存任何资源,也就是说每次用户请求资源时,都会向服务器发送一个请求,每次都会下载完整的资源。通常用于机密性资源。

关于Cache-Control的使用,见下面这张图(来自大额

上文的demo中我们见到过服务器端如何验证Etag:

由于Etag有服务器构造,所以在集群环境中一定要保证Etag的唯一性

If-Modified-Since与Last-Modified

这两个是HTTP1.0中用来验证资源是否过期的请求/响应头,这两个头部都是日期,验证过程与Etag类似,这里不详细介绍。使用这两个头部来验证资源是否更新时,存在以下问题:

有些文档资源周期性的被重写,但实际内容没有改变。此时文件元数据中会显示文件最近的修改日期与If-Modified-Since不相同,导致不必要的响应。

有些文档资源被修改了,但修改内容并不重要,不需要所有的缓存都更新(比如代码注释)

关于缓存的更新问题,请大家看看这里张云龙的回答,本文就不详细展开了。

本文demo代码如下:

相关文章

  • 【前端】作为前端应当了解的Web缓存知识

    缓存优点 通常所说的Web缓存指的是可以自动保存常见http请求副本的http设备。对于前端开发者来说,浏览器充当...

  • 前端科普系列(5):ESLint - 守住优雅的护城河

    作者:Morrain 【前端科普系列】帮助阅读者了解web前端,主要覆盖web前端的基础知识,但不深入讲解,定位为...

  • Web框架体系

    Web 前端知识体系精简 web前端知识体系图 web前端知识体系大全 HTML,CSS,JavaScript知识...

  • 无标题文章

    #Web前端 - web前端是什么 - 定义 - 职责 - web前端基础知识和学习路线 - web前端学习的...

  • Web前端

    Web前端 web前端是什么- 定义 职责 web前端基础知识和学习路线 web前端学习的资源 1.Web前端是...

  • 好程序员web前端教程分享web前端入门基础知识

    好程序员web前端教程分享web前端入门基础知识,作为合格的Web前端工程师必须得掌握HTML、CSS和JavaS...

  • 好程序员Web前端培训分享一些小知识!

    好程序员Web前端培训分享一些小知识!为了帮助正在从事Web前端工作和正在学习Web前端的小伙伴更好的了解Web前...

  • 7.6

    这几天自己尝试性地看了一些web前端的知识,了解了web前端需要进行的工作。 在我的理解中,web前端就像是一座架...

  • 前端资源教程

    资源教程原文 综合类前端知识体系前端知识结构Web前端开发大系概览Web前端开发大系概览-中文版Web Front...

  • 零基础如何成为一个黑客

    我建议先从web安全开始入门,学习web安全首先就要了解前端知识。 Html/css/js/php/都是学习前端所...

网友评论

    本文标题:【前端】作为前端应当了解的Web缓存知识

    本文链接:https://www.haomeiwen.com/subject/fauvittx.html