CN-Web缓存

Molaters Lv5
## 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)

如果:

  1. 请求报文使用的是GET方法
  2. 请求报文中包含一个if-Modified-Since的首部行

那么这个HTTP报文就是一个条件GET报文

条件GET方法的操作方式

一个代理缓存我器代表一个请求浏览器

向某Web服务器发送一个请求报文:

1
2
GET /fruit/kiwi.gif HTTP/1.1
Bost: www.exotiquecuisine.com

其次,改web服务器像缓存器发送具有被请求对象的响应报文

1
2
3
4
5
6
7
HTTP/1.1 200 CR
DATA: Sat,8 Oct 2011 15:39:29
Server : Apache/1.3.0 (Unix)
Last-Modified :Wed, 7 Sep 2011 09:23:24
Content-Type: image/gif

(data ……)

该缓存器在将该对象转发到请求的浏览器的同时,也在本地缓存了这个对象。
更重要的是缓存器在存储这个对象的时候也存储了最后的修改日期


一星期之后,另一个用户经过该缓存器上请求同一个对象

该对象仍然在这个缓存器里面,由于可能被修改,所以缓存器会发送一个条件GET执行最新检查

1
2
3
GET /fruit/kiwi.gif HTTP/1.1
Bost: www.exotiquecuisine.com
If-Midified-Since: Wed, 7 Sep 2011 09:23:24

值得注意的是If-Modified-Since刚好等于上个星期的Last-Modified
假设没有被修改,那么Web服务器向该缓存器发送一个响应报文:

1
2
3
4
5
HTTP/1.1 304 Not Modified
DATA: Sat, 15 Oct 2011 15:39:29
Server : Apache/1.3.0 (Unix)

(EMPTY ENTITY BODY)

Pasted image 20230917163130

  • 标题: 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 进行许可。
 评论