🔌 第五章 服务器端的局域网中有什么玄机
📄 一句话概括

缓存服务器站在客户端与源站之间:请求先问它,命中直接回、未命中去源站取一份存下再回——本质是代理,靠复制内容来分担负载。

📝 本节和前面几节的关系

5.3 用多台服务器分担;5.4 换思路——把内容复制到近处。

一、位置与角色

缓存服务器站在客户端与 Web 服务器之间: 命中:直接回,源站毫无感知; 未命中:去源站取一份,存下来再回。

二、本质

它是代理——代替别人去访问; 5.4.3~5.4.5 会把代理家族讲全。

三、动手 Demo:缓存服务器的位置

缓存服务器站在客户端和 Web 服务器中间:

for s in ['浏览器 -> 缓存服务器 -> Web 服务器(源站)']:
    print(s)
print()
print('命中缓存:直接回,源站一根毫毛都没动')
print('未命中:去源站取一份,存下来再回')

实跑输出:

--------------------------------------------------------------------
缓存服务器的位置
--------------------------------------------------------------------
  缓存服务器站在客户端和 Web 服务器中间:

    浏览器 -> 缓存服务器 -> Web 服务器(源站)

    命中缓存:直接回,源站一根毫毛都没动
    未命中:去源站取一份,存下来再回

  它的本质是**代理**——代替别人去访问。

适合缓存的:静态页面、图片、下载文件; 不适合的:每次都变的内容(搜索结果、订单页)。

30 秒实验

  1. 打开一个网站看响应头里有没有缓存命中的痕迹。
  2. 列举三类适合缓存的内容。
  3. 想想为什么订单页不适合缓存。

常见误区

  1. 以为缓存服务器是另一台源站——它是复制内容的中间人。
  2. 以为所有内容都能缓存——动态内容不行。
自测三问(点开对答案) 1. 缓存服务器站哪? —— 客户端与源站之间。 2. 命中与未命中各怎么办? —— 直接回;去源站取并存储。 3. 它的本质? —— 代理。

相关笔记