7.1 缓存的概念与应用

  • 缓存(cache):HTTP 的仓库,Web 缓存(Web cache)或代理缓存(proxy cache)是一种特殊的 HTTP 代理服务器,可以将经过代理传送的常用文档复制保存起来。之后请求同一文档的别的客户端就可以享受缓存的私有副本所提供的服务了。
  • 客户端从附近的缓存下载文档会比从远程 Web 服务器下载快得多。HTTP 定义了很多功能,使得缓存更加高效,并规范了文档的新鲜度和缓存内容的隐私性。
  • 当 Web 请求抵达缓存时,如果本地有“已缓存的”副本,就可以从本地存储设备而不是原始服务器中提取这个文档。
  • 缓存的优点:
    • 缓存减少了冗余的数据传输,节省了你的网络费用。
    • 缓存缓解了网络瓶颈的问题。不需要更多的带宽就能够更快地加载页面。
    • 缓存降低了对原始服务器的要求。服务器可以更快地响应,避免过载的出现。
    • 缓存降低了距离时延,因为从较远的地方加载页面会更慢一些。

1. 减少冗余数据传输

  • 有很多客户端访问一个流行的原始服务器页面时,服务器会多次传输同一份文档,每次传送给一个客户端。一些相同的字节会在网络中一遍遍地传输。这些冗余的数据传输会耗尽昂贵的网络带宽,降低传输速度,加重 Web 服务器的负载。
  • 缓存可以保留第一条服务器响应的副本,后继请求就可以由缓存的副本来应对了,这样可以减少那些流入/流出原始服务器的、被浪费掉了的重复流量。

2. 缓解网络带宽瓶颈

  • 很多网络为本地网络客户端提供的带宽比为远程服务器提供的带宽要宽。客户端会以路径上最慢的网速访问服务器。如果客户端从一个快速局域网的缓存中得到了一份副本,那么缓存就可以提高性能——尤其是要传输比较大的文件时。
    7.1 缓存的概念与应用

3. **瞬间拥塞

  • 缓存在破坏瞬间拥塞(Flash Crowds)时显得非常重要。突发事件(比如爆炸性新闻、批量 E-mail 公告,或者某个名人事件)使很多人几乎同时去访问一个 Web 文档时,就会出现瞬间拥塞。由此造成的过多流量峰值可能会使网络和 Web 服务器产生灾难性的崩溃。

4. 降低距离时延

  • 即使带宽不是问题,距离也可能成为问题。每台网络路由器都会增加因特网流量的时延。即使客户端和服务器之间没有太多的路由器,光速自身也会造成显著的时延。在实际应用中,信号的传输速度会比光速低一些,因此,距离时延会更加严重。
  • 如下图,长距离下,即便使用的是并行的持久连接,光速也会造成显著的时延。
    7.1 缓存的概念与应用
  • 将缓存放在附近的机房里可以将文件传输距离从数千英里缩短为数十米。