乐趣区

关于缓存:Client-Side-Cache-和-Server-Side-Cache-的区别

Cache me outside

缓存是一种优化网页加载工夫并优化其应用的内存量的长久化机制。

Cache 的定义

出于篇幅限度,本文重点介绍 Web 缓存。当您加载网站时,网站数据(如图像、视频和 html 文档)将被保留。从新加载网站后,它不会调用数据库再次获取该数据。它只是将数据从内存中读取。

缓存以容量换取速度,缓存通常会临时存储数据的子集,而数据库的数据通常是残缺且长久的。

Client Side Caching

客户端缓存通常称为浏览器缓存,只管客户端缓存是一个略微宽泛的术语。其运行原理如下图所示:

一旦浏览器从服务器申请数据,它就会将其存储到浏览器创立的文件夹中。下次关上网页时,它不会调用服务器获取数据,而是从浏览器缓存文件夹中提取数据。

Server Side Caching

服务器端缓存是一个相似的概念,但略微简单一些。

一旦用户向网站发出请求,其数据就会存储在服务器上。下次用户发出请求时,它只需从服务器取回保留的数据,无需从数据库中提取数据,从而节省时间。

这些缓存由站点管理员实现,充当浏览器和源服务器之间的中介。它们通常也基于 HTTP 缓存指令。

Remote Caching

近程缓存相似于服务器端缓存,但它也能够运行应用程序来序列化和反序列化数据。不同之处在于您能够管制近程服务器,而不是由其他人操作。

通常通过利用程序代码或应用能够利用内存中数据存储的应用程序框架来检索 Web 内容。

Server-Side vs Remote vs Client Side

次要区别在于网站的数据在本地保留在客户端缓存中,而在服务器端缓存中能够分发给所有用户,而在近程中,数据也失去解决。
大多数精心设计的网站或应用程序将同时应用服务器端和客户端。

Why caching?

通过缩小后端资源的负载和网络拥塞,缓存 Web 内容有助于进步网站的响应能力。– AWS

Downside

如果您尝试拜访的网站已更新,则在革除缓存之前您可能看不到更新。这可能产生在您之前,特地是如果您是一名 Web 开发人员并且您正在尝试更新您网站的设计。如果缓存存储在您的客户端,解决方案很简略。

这实用于客户端缓存,如果服务器端缓存没有正确处理这种状况,可能会在服务器端缓存上返回谬误。
如果您应用近程缓存,它能够解决该谬误并为您革除缓存并为您加载新申请。

简而言之,client side cache:

您的网络浏览器(Chrome、Firefox、Safari 或任何您应用的浏览器)决定记住网页的外观,因而不用再次申请服务器发送网页。这通过打消简直整个网络通信来节省时间(和带宽)。然而,如果服务器决定更改网页的外观,您就会遇到麻烦,因为浏览器对它认为页面应该是什么样子的“记忆”当初曾经过期了,它会给您一个旧版本的页面而不是新的。这就是为什么人们有时会告诉您“革除浏览器缓存”– 这会迫使您的浏览器“遗记”页面的外观。这迫使它向服务器询问页面的新的、更新的版本。

server side cache:

负责生成网页(即,将网页放在一起)的服务器决定记住网页的外观,因而不用再次生成它。这节俭了工夫(但不是带宽),因为当初服务器不用经验构建整个页面的麻烦——它能够从新发送上次浏览器申请时发送的任何内容。然而,如果网页上的任何数据须要更改,服务器将被迫抛弃其对页面外观的“记忆”,并须要从新生成页面。如果页面真的很简单并且须要很多工夫来生成,这种缓存很有用。

更多 Jerry 的原创文章,尽在:” 汪子熙 ”:

退出移动版