CN-Web缓存

功能
- 能够在不访问服务器的前提下满足客户端的HTTP请求
为什么要发明这种技术
缩短客户请求的响应时间
减少机构/组织的流量
在大范围内(Internet)实现有效的内容分发
Web缓存/代理服务器**
- 用户设定浏览器通过缓存进行Web访问
- 浏览器向缓存/代理服务器发送所有的HTTP请求
- 如果锁清秋的对象在缓存中给,缓存返回对象
- 否则,缓存服务器向原始服务器发送HTTP请求,获取对象,然后返回给客户端并保存该对象
缓存既充当客户端,也充当服务器
一般由ISP(Internet服务提供商架设)
Web缓存示例
假定:
- 对象的平均大小是1000,000 bit
- 机构网络中的浏览器平均每秒有15个到原始服务器的请求
- 从机构路由器到原始服务器的往返延迟=2s
网络性能分析:
局域网(LAN)的利用率= (15个请求/s) * (1Mb/请求) / (100Mbps) = 15%
然而接入链路上的流量强度为 1
接入互联网的链路的利用率 = 100%
总的延迟 = 互联网上的延迟 + 访问延迟 +局域网延迟
$延迟= 2s + n \ min+ m \ ms$
由于局域网上的强度为0.15的通信量最多导致数毫秒的实验,我们可以忽略局域网的时延。
[[CourseNotes/计算机网络/CN-分组交换网络中的时延、丢包和吞吐量]]
由于链路上的时延因为利用率的原因会趋于无穷大,所系选哟改进事件响应特性
解决方案1
将链路的速率提高,从15Mbps增加到100Mbps。这样可以将介入链路上的流量强度减少到0.15
缺点:代价很高
解决方案2
安装Web缓存
假定缓存命中率是0.4
网络性能分析
有40%的请求立即得到满足
剩下的60%通过原始服务器满足
接入互联网的链路的利用率下降到 **60%**,从而其延迟可以忽略不计,例如10微秒
总的平均延迟:$互联网上的延迟+访问延迟+局域网延迟 = 0.6 \times 2.01s +0.4 \times n \ ms <1.4 s$
内容分发网络(Content Distribution Network,CDN)
条件GET方法
景观高速缓存能够减少用户感受到的响应时间,但是也引入了一个新的问题
数据一致性问题
HTTP协议有一种机制,允许缓存器确定它的对象是最新的。
条件Get方法(Conditional GET)
如果:
- 请求报文使用的是GET方法
- 请求报文中包含一个
if-Modified-Since
的首部行
那么这个HTTP报文就是一个条件GET报文
条件GET方法的操作方式
一个代理缓存我器代表一个请求浏览器
向某Web服务器发送一个请求报文:
1 | GET /fruit/kiwi.gif HTTP/1.1 |
其次,改web服务器像缓存器发送具有被请求对象的响应报文
1 | HTTP/1.1 200 CR |
该缓存器在将该对象转发到请求的浏览器的同时,也在本地缓存了这个对象。
更重要的是缓存器在存储这个对象的时候也存储了最后的修改日期
一星期之后,另一个用户经过该缓存器上请求同一个对象
该对象仍然在这个缓存器里面,由于可能被修改,所以缓存器会发送一个条件GET执行最新检查
1 | GET /fruit/kiwi.gif HTTP/1.1 |
值得注意的是If-Modified-Since
刚好等于上个星期的Last-Modified
值
假设没有被修改,那么Web服务器向该缓存器发送一个响应报文:
1 | HTTP/1.1 304 Not Modified |
- 标题: CN-Web缓存
- 作者: Molaters
- 创建于 : 2023-11-24 10:14:50
- 更新于 : 2023-10-12 17:06:25
- 链接: https://molaters.github.io/2023/11/24/计算机网络/CN-Web缓存/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。