当没有任何已启用的功能需要响应内容时,Cloudflare 可以在数据到达时将其发送给客户端。部分功能会在边缘检查或更改响应内容。
检查可能会在边缘暂存部分响应。这可能会增加首字节时间(TTFB),或延迟增量交付。暂存的数据量取决于功能和响应。
Cloudflare 功能主要检查 Content-Type 为 text/html 的响应。部分功能会更改正文,其他功能仅读取正文。
以下功能在开启且适用时可以更改 HTML 响应正文:
| 功能 | 正文更改 |
|---|---|
| AI Labyrinth | 为未经授权的 AI 爬虫添加不可见链接 |
| Always Online | 在归档页面上添加横幅 |
| Automatic HTTPS Rewrites | 将符合条件的 HTTP 链接重写为 HTTPS |
| Cloudflare 质询功能 | 注入质询脚本或返回质询内容 |
| Cloudflare Fonts 和 Automatic Platform Optimization | 重写 Google Fonts 引用 |
| 电子邮件地址模糊处理 | 对页面内容中的电子邮件地址进行模糊处理 |
| Markdown for Agents | 将符合条件的请求的 HTML 转换为 Markdown |
| 替换不安全的 JavaScript 库 | 重写受支持的不安全库 URL |
| Rocket Loader | 更改脚本加载行为 |
| Web Analytics | 注入 Real User Monitoring 信标 |
当 响应正文缓冲 设置为 None(无) 时,这些功能不会更改响应正文。
安全和 AI 功能也可能读取 HTML 而不更改它。Prefetch URLs 会读取以 text/plain 提供的 URL 清单。
此列表不包括会检查响应内容的显式规则。排查问题时请分别审查每条规则。
响应正文检查最常影响渐进式 HTML 和纯文本流。它也可能影响由显式检查规则选中的其他响应。客户端收到数据的时间可能晚于源站发送时间,或数据会以比源站更大的分组到达。
请在源站设置准确的 Content-Type。除非该媒体类型确有必要,否则不要将流式 API 响应以 text/html 或 text/plain 提供。
Cache-Control: no-transform 响应指令会阻止受支持功能对正文进行更改。它不会阻止只读检查。有关此指令的其他影响,请参阅 Cache-Control 指令。
如果响应在通过 Cloudflare 代理后停止流式传输:
- 验证在不经过 Cloudflare 时,源站是否增量发送数据。
- 检查源站响应的
Content-Type和Cache-Control标头。 - 审查适用于该响应路径的功能和规则。
- 创建一条针对特定路径的配置规则,将 Response Body Buffering(响应正文缓冲) 设置为 None(无)。
- 再次通过 Cloudflare 测试该响应。
None(无) 设置会在不进行检查的情况下流式传输正文。这可能会阻止安全、优化和分析功能在匹配的响应上生效。请使用尽可能窄的匹配表达式。
有关设置值和 API 配置,请参阅 响应正文缓冲。