HTTP 缓存路径实验

一次请求,会在哪一层结束?

你看见页面了,不代表源站收到了请求;你看见 304,也不代表页面没有正文。先设定各层副本的状态,再亲手跟一遍路径。

请求路径

私有缓存 共享缓存 源站
浏览器 当前用户的私有缓存 过期副本
CDN 边缘 靠近用户的共享缓存 过期副本
源站 生成或验证最终响应 内容未变
304

请求到达源站,版本未变;源站不重传正文,浏览器复用旧副本。

判定终点源站
状态码304
页面正文来自浏览器旧副本
估算网络传输1.4 KB
访问源站是 · 1 次

正在发生什么

    同一个页面,四种成本

    估算值用来比较路径,不代表所有现实网络的固定延迟。

    情形 判定终点 页面正文来源 估算延迟 回源 估算传输 操作
    冷启动 · 无副本 源站 · 200 源站新正文 约 148 ms 1 次 82 KB
    浏览器命中 · 新鲜 浏览器 · 本地复用 浏览器副本 约 1 ms 0 次 0 KB
    CDN 命中 · 新鲜 CDN · 200 CDN 副本 约 32 ms 0 次 82 KB
    304 验证 · 未变 源站 · 304 浏览器旧副本 约 104 ms 1 次 1.4 KB
    “状态码”和“正文来源”不是同一个指标。 304 不携带页面正文,浏览器用本地副本组装出最终页面;CDN 命中则可以返回带正文的 200,但依然没有回源。