Client Side Cache 和 Server Side Cache 的区别

简介: Client Side Cache 和 Server Side Cache 的区别

Cache me outside


缓存是一种优化网页加载时间并优化其使用的内存量的持久化机制。


Cache 的定义

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


缓存以容量换取速度,缓存通常会暂时存储数据的子集,而数据库的数据通常是完整且持久的。


Client Side Caching

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

image.png



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


Server Side Caching

服务器端缓存是一个类似的概念,但稍微复杂一些。


image.png


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


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


Remote Caching

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


image.png


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


Server-Side vs Remote vs Client Side

主要区别在于网站的数据在本地保存在客户端缓存中,而在服务器端缓存中可以分发给所有用户,而在远程中,数据也得到处理。

大多数精心设计的网站或应用程序将同时使用服务器端和客户端。


Why caching?

通过减少后端资源的负载和网络拥塞,缓存 Web 内容有助于提高网站的响应能力。 - AWS


Downside

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


这适用于客户端缓存,如果服务器端缓存没有正确处理这种情况,可能会在服务器端缓存上返回错误。

如果您使用远程缓存,它可以处理该错误并为您清除缓存并为您加载新请求。


简而言之,client side cache:


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


server side cache:


负责生成网页(即,将网页放在一起)的服务器决定记住网页的外观,因此不必再次生成它。 这节省了时间(但不是带宽),因为现在服务器不必经历构建整个页面的麻烦——它可以重新发送上次浏览器请求时发送的任何内容。 但是,如果网页上的任何数据需要更改,服务器将被迫丢弃其对页面外观的“记忆”,并需要重新生成页面。 如果页面真的很复杂并且需要很多时间来生成,这种缓存很有用。


相关文章
|
存储 JSON Kubernetes
KubeConfig
KubeConfig 是一个用于存储和管理 Kubernetes 集群配置文件的 JSON 格式文件。它包含了集群的详细信息,如 API 服务器地址、认证信息、命名空间等。KubeConfig 文件的主要作用是让用户能够轻松地在不同的 Kuberne
464 1
|
存储 大数据 索引
解锁Python隐藏技能:构建高效后缀树Suffix Tree,处理大数据游刃有余!
【7月更文挑战第19天】Suffix Tree 概述:** 为高效处理字符串搜索、匹配和大数据分析,后缀树是一种优化数据结构,可快速检索后缀、执行最长公共后缀查询及字符串排序。Python中虽无内置实现,但可通过第三方库或自建代码构造。应用于字符串搜索、生物信息学等领域,提升大数据处理效率。
257 3
|
人工智能 弹性计算 运维
开启运维新纪元!阿里云OS Copilot深度评测 & 体验分享
OS Copilot是Alibaba Cloud为Linux推出的一款基于大模型的智能助手,它能理解自然语言、辅助命令执行和系统运维。目前仅支持Alibaba Cloud Linux 3的x86_64架构。安装过程涉及线上和本地体验,包括申请试用、配置环境变量、安装组件等步骤。OS Copilot提供命令行和多轮交互模式,能进行代码生成和摘要,辅助开发和运维工作。产品体验评测中,OS Copilot因其自然语言理解和高效辅助得到高度评价,尤其对运维人员来说,能大幅提升工作效率。然而,目前仅限于特定操作系统,是其局限性。未来有望扩展更多功能和支持更多平台。
134097 26
|
数据采集 缓存 算法
中间件数据过滤和聚合
中间件在数据处理中扮演关键角色,执行数据过滤和聚合。数据过滤选择满足特定条件的记录,而数据聚合则组合记录生成摘要信息。中间件位于数据源与消费者之间,保证数据质量、一致性和系统性能。例如,在电商场景中,中间件过滤无效用户行为,聚合浏览数据,支持实时分析,助力业务决策。
176 1
|
C语言
C语言之九九乘法表||素数||最小公倍数
C语言之九九乘法表||素数||最小公倍数
180 0
|
机器学习/深度学习 程序员 编译器
面向初学者的 20 大 Python 面试问题和答案
面向初学者的 20 大 Python 面试问题和答案
446 0
|
编解码 监控 前端开发
使用 rollup 打包一个原生 js + canvas 实现的移动端手势解锁功能组件
使用 rollup 打包一个原生 js + canvas 实现的移动端手势解锁功能组件
325 0
使用 rollup 打包一个原生 js + canvas 实现的移动端手势解锁功能组件
|
5天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
下一篇
oss云网关配置