PAGES × CLOUDFLARE CDN
整份缓存。
只取一段。
给 Pages 加上自定义域名与缓存规则后,CDN 能否只返回指定字节?对比浏览器结果,再用独立客户端确认真实网络响应。
8 MiB可复现的二进制文件
64 KiB单次范围读取上限
206状态、长度、内容同时校验
01 / EXPERIMENT
选择两个入口
每个入口依次执行:预热前 Range → 完整读取并校验 8 MiB → 六组 Range。每轮使用独立参数,同轮内始终复用同一 URL。
填写自定义域名后,可以与 Pages 原始地址一起比较。
02 / EVIDENCE
浏览器响应,逐项核对
服务端 Range 尚未证实。浏览器可从已下载的完整缓存中生成 206;网页 fetch 结果不能单独证明 CDN 在网络上只返回了这些字节。
| 入口 / 阶段 | 读取范围 | fetch 状态 | 读取字节 | 缓存响应头 | 耗时 | 字节校验 |
|---|---|---|---|---|---|---|
| 运行后,浏览器可见的响应头与字节校验结果会显示在这里。 | ||||||
读取超限时会取消余流;显示的是应用已经收到的字节下限,并非精确网络流量。完整预热会让浏览器拥有整份文件,之后的 206 可能由本地缓存切片产生;必须用不带浏览器缓存的 Node 客户端复核。
接入配置与判定方法 +
- Pages 绑定
HansO-o/ddb的main,构建命令npm run build,输出目录dist。 - 在 Pages 的 Custom domains 绑定测试子域名,确认对应 DNS 记录开启橙云代理。
- Cache Rules 仅匹配该主机的
/data/probe-路径,选择 Eligible for cache;Edge TTL 选择忽略源站缓存头,缓存一天。 - 网页结果用于观察。最后运行
npm run probe -- https://ddb-boo.pages.dev https://你的自定义域名,以独立客户端的状态、长度与内容作为网络判定依据。
浏览器显示的 206、HIT 或 Cf-Ray 都可能涉及已缓存的响应或重新验证。没有 HIT 也不等于 CDN 一定未缓存;请同时保留 Node 复测记录。一次完整请求不能保证全球所有节点都已预热。
项目只包含合成数据,不使用 Worker、Pages Functions 或 Service Worker。不手动添加 Accept-Ranges、Content-Range 或伪造 206 响应。
查看源码与命令行测试 ↗