HTTP内容缓存工作原理
  

刘昂_北京办_技术支持 6196

{{ttag.title}}
在 HTTP 协议的事物处理过程中,所有的静态对象比如图片、CSS、Javascript 等都是使
用的请求-应答机制。 在浏览器直接访问服务器的时候, 对于这些内容部分的请求都是由服
务器来进行处理。但由于常用的一些 Web/App 服务器本身并不是针对高速对象请求设计,
比如大部分基于 JAVA 容器类型的 Web 服务器包括 Weblogic、Websphere、Tomcat 等,他们
都是主要关注于内部的业务逻辑处理。但一个好的 Web 站点,必然有大量的静态对象来实
现系统的美观或者功能菜单选择等, 因此, 这些静态内容的处理对服务器来说是一个额外的
开销。
另外,当用户远离 Web站点的时候,广域网带宽、延迟、丢包等因素也将严重影响到
客户端的用户体验。因此,必须采用 HTTP 缓存技术,降低服务器的静态内容处理损耗,或
者是将内容缓存到离客户端较近的网络位置。 以提高整个系统的访问速度, 使服务器更加专
注于处理业务逻辑。
常见的HTTP 缓存根据位置不同,分为两大类型,浏览器本地缓存和中间设备缓存。
·浏览器本地缓存
浏览器缓存这个概念, 对于经常用浏览器来浏览信息的用户来说并不十分陌生。 用户也
许在用浏览器浏览信息时,经常使用“返回”和“后退”的浏览功能,调用你以前阅读过的
页面,这时,你会发现显示速度是很快的,其实这些你刚调出来的内容就放在计算机的缓存
中,而不需要再次从 Internet 上重新传输数据,这样就会给用户造成了一种访问速度被提
高的错觉。 所以浏览器缓存其实就是指在本地使用的计算机中开辟一个内存区, 同时也开辟
一个硬盘区作为数据传输的缓冲区,然后用这个缓冲区来暂时保存用户以前访问过的信息。
当用户在浏览器中设置一定量的磁盘缓存后, 浏览器上网工作时会把从网上读出的网页、
图像以及其它数据存放在磁盘缓存之中,并建立相应的文档索引。在浏览器以后的工作中,
将首先检查磁盘缓冲区中是否存在相应的数据,如果有,则直接从本地磁盘上读出,不再从
网上下载, 所节省的时间是显而易见的。 缓存按照信息存放的位置可以分成内存缓存和硬盘
缓存。 内存缓存是用于暂时存储本次上网所调用的数据资料的, 从互联网上传来的每一个网
页信息,在内存缓存中都相应地给予保存一个备份, “返回”和“向前”实际上是将以前的
页面从内存缓存中调出来并显示在用户的浏览器窗口中, 在内存缓存中存放的网页信息量和
内存缓存的大小有关,内存缓存越大,保存的网页信息量就越多。硬盘缓存是用于保存用户
前几次上网时所调用的信息资料,用户从“历史记录”中调出来的内容其实就是保存在硬盘
缓存中的, 只要用户开辟的硬盘缓存足够大, 将可以保存用户前几个星期甚至几个月前调用
过的信息资料。
·中间设备缓存
在浏览器和 Web服务器之间放置HTTP 缓存设备,HTTP缓存设备可以将静态内容进行
缓存。
以/images/a.gif为例,当第一个客户端请求/images/a.gif的时候,请求发送到HTTP 缓存
设备,HTTP 缓存设备将请求转发到后台服务器。后台服务器处理请求,并将 a.gif 内容返回
经过 HTTP 缓存设备时。 HTTP 缓存设备就将 a.gif 内容缓存在自身的内存或者存储中。 这样,
当下一个用户再次请求/images/a.gif 时, HTTP 缓存设备在本地内存或存储中找到了对应的内
容, 则直接返回給客户端, 而不再将请求转发到后台服务器。 这样, 在缓存有效的时间段内,
所有后续用户对/images/a.gif 的请求都会由 HTTP 缓存设备直接返回給客户端,而不需要后
台服务器进行处理。
在实际的站点结构中,这种HTTP 缓存设备可以是一级,也可以是多级。大型站点通常
采用两级方式进行部署,在靠近服务器端部署一级,在靠近浏览器端再部署一级,再结合智
能 DNS 指向,就演变成了 CDN(Content Dilivery Network)。
靠近浏览器一端的通常用于减小用户请求对广域网的带宽占用, 提高内容响应速度。 靠
近服务器一端的缓存通常用于减小 Web/应用服务器的处理压力。

打赏鼓励作者,期待更多好文!

打赏
暂无人打赏

bipenghui 发表于 2021-11-23 11:49
  
支持 顶 赞  好  V锐古德!
会飞的癞蛤蟆 发表于 2019-10-14 11:27
  
厉害厉害,学习了,谢谢分享。
黄波 发表于 2019-10-7 08:45
  
打卡打卡
新手548437 发表于 2019-10-3 09:19
  
感谢分享。
沧海 发表于 2019-9-26 11:39
  
学习一下
新手548437 发表于 2019-9-26 09:14
  
感谢分享。
帆聆海 发表于 2019-8-28 15:49
  
感谢分享,学习了!
秋水伊人 发表于 2019-8-27 17:43
  
感谢分享
蓝海 发表于 2019-8-27 17:43
  
感谢分享,学习了
发表新帖
热门标签
全部标签>
每日一问
技术盲盒
安全效果
干货满满
西北区每日一问
技术笔记
新版本体验
功能体验
【 社区to talk】
技术咨询
标准化排查
2023技术争霸赛专题
产品连连看
GIF动图学习
信服课堂视频
每周精选
自助服务平台操作指引
秒懂零信任
技术晨报
技术圆桌
通用技术
答题自测
安装部署配置
每日一记
原创分享
玩转零信任
场景专题
升级&主动服务
社区新周刊
畅聊IT
专家问答
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
故障笔记
排障那些事
高手请过招
高频问题集锦
POC测试案例
全能先锋系列
云化安全能力

本版达人

新手61940...

本周建议达人

zhao_HN

本周分享达人

ZSFKF

本周提问达人