Cloudflare Workers 兼容性标志 `cache_no_cache_enabled` 全解析:在 `fetch()` 中启用标准 `cache: no-cache`
Cloudflare Workers 兼容性标志cache_no_cache_enabled全解析在fetch()中启用标准cache: no-cache【免费下载链接】cloudflare-docsCloudflare’s documentation项目地址: https://gitcode.com/GitHub_Trending/cl/cloudflare-docscache_no_cache_enabled是 Cloudflare Workers 在 2025-08-07 随兼容性日期默认启用的一组兼容性标志它让开发者可以在 Worker 发起的子请求中通过fetch()与Request初始化参数指定标准 HTTP 语义的cache: no-cache从而强制 Cloudflare 缓存与源站重新验证。本文以仓库中的 cache-no-cache.md 为骨架结合 fetch() API 文档 与兼容性标志的配置文档完整讲解该标志的前置条件、开启后的请求行为、缓存重验证流程、代码示例以及如何通过 Wrangler、Dashboard 与 API 开关它。读完你将能正确地在 Worker 中强制按需重验证源站资源并理解它与cache: no-store的区别。标志总览front matter 中的关键元数据该文档的 front matter 定义了标志的完整元信息是理解其生命周期与开关方式的起点字段值含义nameEnablecache: no-cacheHTTP standard API标志的人类可读名称sort_date2025-08-07用于按时间排序展示的日期enable_date2025-08-07该标志自该兼容性日期起默认启用的日期enable_flagcache_no_cache_enabled显式启用该行为的兼容性标志名disable_flagcache_no_cache_disabled显式禁用该行为的兼容性标志名从仓库的 compatibility-flags.ts 可以看到所有兼容性标志的 schema 统一包含name、enable_date、enable_flag、disable_flag、sort_date以及可选的experimental字段。而 compatibility-flags.json.ts 则把src/content/compatibility-flags/目录下全部标志聚合为一个 JSON 端点省略sort_date并将正文作为description输出这意味着本文档的内容同样会被程序化消费例如供 Dashboard 或自动化工具展示。关键事实由于enable_date与sort_date均为2025-08-07对于compatibility_date设定在2025-08-07或之后的 Worker该行为默认开启无需任何配置旧 Worker 则需要显式加入cache_no_cache_enabled。未启用时的行为TypeError保护文档明确说明了未开启时的兜底逻辑当未启用cache_no_cache_enabled或设置了cache_option_disabled时Workers 运行时会抛出TypeError错误信息为Unsupported cache mode: no-cache。这包含两种触发条件未启用cache_no_cache_enabled例如 Worker 的compatibility_date早于2025-08-07且没有显式加入该标志设置了cache_option_disabled这是cache_option_enabledcache: no-store支持的禁用标志。由于cache: no-cache与cache: no-store同属fetch()的cache选项体系当no-store支持被整体关闭时no-cache也会一并失效并抛出TypeError。同时仓库中的 fetch() API 文档 对这一约束给出了更完整的表述cache选项的合法取值只有undefined | no-store | no-cache三种指定任何其他值如浏览器端的default、reload、force-cache等都会抛出TypeError错误信息为Unsupported cache mode: attempted-cache-mode。启用后的效果重新验证而非绕过缓存文档将no-cache的行为归纳为两点所有请求都会附带Pragma: no-cache与Cache-Control: no-cache两个请求头向源站明示请返回可用的缓存校验信息对非 Cloudflare 托管的源站发起的子请求会强制 Cloudflare 的缓存与源站重新验证revalidate。这与no-store有本质区别no-store由cache_option_enabled标志支持参见 cache-no-store.md同样会给请求加上Pragma: no-cache与Cache-Control: no-cache但对非 Cloudflare 托管源站的行为是完全绕过 Cloudflare 缓存而no-cache则保留缓存命中可能性只是强制在响应前向源站确认缓存是否仍然有效。需要特别注意的是该行为作用于Worker 内部发起的子请求subrequest而不是直接控制客户端到 Worker 的请求缓存策略。缓存重验证的完整流程文档给出了启用后请求经过 Cloudflare 缓存时的三步决策过程先在 Cloudflare 缓存中查找匹配项命中时无论该缓存条目是新鲜的fresh还是已过期的stale都会向源站发送一个条件请求conditional request。若源站确认资源未变化则直接返回缓存版本若资源已变化则从源站下载最新内容、更新缓存并返回该新内容未命中时Worker 向源站发起标准请求并将响应写入缓存后返回。这个命中即条件请求、无视新鲜度的设计正是Cache-Control: no-cache的 HTTP 标准语义——允许使用缓存但每次使用前都必须经过源站验证从而在尽可能少回源与保证内容最新之间取得平衡。对于命中且资源未变化的场景源站只需返回 304 之类的验证响应流量成本远低于完整下载。代码示例两种指定方式文档提供了两种等价的写法均可直接复制使用。方式一在fetch()的 options 中指定const response await fetch(https://example.com, { cache: no-cache });方式二构造Request对象后传入fetch()const request new Request(https://example.com, { cache: no-cache }); const response await fetch(request);两种方式的语义完全一致cache属性既可以作为RequestInit的选项直接传入fetch()也可以在构造Request时固化到请求对象上。后者适合需要先构建、校验或复用同一个请求对象再发起的场景。如何开启或关闭该标志根据 compatibility-flags.mdx 的说明兼容性标志有三条配置通道1. 通过 Wrangler 配置文件在wrangler.jsonc或wrangler.toml中设置compatibility_date与compatibility_flags{ // 将兼容性日期固定在 2025-08-07 之前以便按需逐项开启新行为 compatibility_date: 2025-08-06, // 显式启用 no-cache 支持 compatibility_flags: [cache_no_cache_enabled] }若你的compatibility_date已晚于2025-08-07默认已开启但出于兼容性考虑想关闭该行为则应加入cache_no_cache_disabled{ compatibility_date: 2025-08-07, compatibility_flags: [cache_no_cache_disabled] }2. 通过 Cloudflare Dashboard在 Cloudflare Dashboard 中进入 Worker 的 Settings → Compatibility flags兼容性标志面板添加或移除对应标志即可。3. 通过 Cloudflare API调用 Workers Script API 更新 Worker或在创建新版本Workers Versions API时在请求体的metadata字段中携带compatibility_flags数组。这与该仓库 compatibility-flags.json.ts 输出的 JSON 结构保持一致。相关标志对照与选型建议为了不混淆下表将cache选项体系中的两个标志并列对照行为启用标志禁用标志默认启用日期对非 Cloudflare 源站的效果cache: no-storecache_option_enabledcache_option_disabled2024-11-11绕过 Cloudflare 缓存直接回源cache: no-cachecache_no_cache_enabledcache_no_cache_disabled2025-08-07强制与源站重新验证后再响应两者的共同点是都会在请求上附加Pragma: no-cache与Cache-Control: no-cache头且都只支持这两个取值fetch() API 文档。选型建议需要每次都拿到源站最新内容、但允许 304 复用缓存时用no-cache需要完全跳过缓存读取例如包含敏感数据、要求不可缓存的请求时用no-store如果代码中出现了这两个取值以外的cache值运行时会抛出Unsupported cache mode的TypeError请确保只使用no-store与no-cache。与 Cache API 的边界cache: no-cache作用于fetch()发起的子请求属于通过标准 HTTP 头驱动 Cloudflare 缓存决策的路径。仓库中另有面向 Cache API 的兼容性标志cache_api_request_cf_overrides_cache_rules见 cache-api-request-cf-overrides-cache-rules.md它处理的是请求cf对象中的缓存设置对缓存规则的覆盖问题仅适用于用户自有或灰云grey-clouded站点两者分工不同前者是标准 HTTP 语义的请求选项后者是 Cache API 的配置覆盖。小结cache_no_cache_enabled将标准 HTTP 的no-cache语义完整地带入了 Workers 运行时开启后Worker 内的子请求可以用fetch(url, { cache: no-cache })或new Request(url, { cache: no-cache })驱动 Cloudflare 缓存与源站做条件重验证在命中未变更资源时以极小回源成本返回最新内容。该标志自2025-08-07起默认启用可通过cache_no_cache_disabled显式关闭其完整行为、支持取值与配置方式均可在本文引用的 cache-no-cache.md、fetch() API 文档 与 兼容性标志总览 中进一步查阅。【免费下载链接】cloudflare-docsCloudflare’s documentation项目地址: https://gitcode.com/GitHub_Trending/cl/cloudflare-docs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

5分钟把PC游戏串流到电视和平板:Sunshine 游戏串流服务器上手

5分钟把PC游戏串流到电视和平板:Sunshine 游戏串流服务器上手

5分钟把PC游戏串流到电视和平板:Sunshine 游戏串流服务器上手 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine 是一个开源的自托管游戏串流服务器。把它装在自…

2026/9/18 10:47:12 阅读更多 →
GitHub Pro 申请指南:学生包、免费替代与避坑

GitHub Pro 申请指南:学生包、免费替代与避坑

说 GitHub Pro 申请,先得把一个误会掰正:官方从来就没有一个叫"Pro 申请"的按钮。你在网上刷到的那些教程,本质上讲的是三件完全不同的事——在校学生走 GitHub Education 免费拿 Pro 权益、教师或开源维护者身份获得的免费授权、以…

2026/9/19 13:20:30 阅读更多 →
vLLM与SGLang在Qwen3.8-27B-FP8上的调度策略实测对比

vLLM与SGLang在Qwen3.8-27B-FP8上的调度策略实测对比

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 13:20:38 阅读更多 →

最新新闻

宁波网站seo诊断工具避坑指南:搞懂服务器才不慌的完整流程

宁波网站seo诊断工具避坑指南:搞懂服务器才不慌的完整流程

宁波网站seo诊断工具避坑指南:搞懂服务器才不慌的完整流程 域名解析报错,服务器日志一片红,你是不是也抓狂过?很多宁波的站长和开发者,一提到SEO诊断,脑子里全是代码和参数,根本摸不着头脑。 域名服务器搞不懂…

2026/9/19 13:20:52 阅读更多 →
VPA 阈值配置指南:3 个参数止住频繁扩缩容,让 Pod 资源稳定运行

VPA 阈值配置指南:3 个参数止住频繁扩缩容,让 Pod 资源稳定运行

VPA 阈值配置指南:3 个参数止住频繁扩缩容,让 Pod 资源稳定运行 【免费下载链接】autoscaler Autoscaling components for Kubernetes 项目地址: https://gitcode.com/GitHub_Trending/au/autoscaler 凌晨的告警群又被 Pod 重启刷屏:负…

2026/9/19 13:19:57 阅读更多 →
Streamlit 开发环境搭建指南:基于 uv 的依赖管理、虚拟环境与项目初始化实战

Streamlit 开发环境搭建指南:基于 uv 的依赖管理、虚拟环境与项目初始化实战

Streamlit 开发环境搭建指南:基于 uv 的依赖管理、虚拟环境与项目初始化实战 【免费下载链接】streamlit Streamlit — A faster way to build and share data apps. 项目地址: https://gitcode.com/gh_mirrors/st/streamlit Streamlit 是当前仓库&#xff0…

2026/9/19 13:19:57 阅读更多 →
Windows10手动修改IP地址教程:静态IP配置与故障排查

Windows10手动修改IP地址教程:静态IP配置与故障排查

身边总有朋友问我,家里换了路由器之后电脑突然上不了网了,或者到公司开会,IT给了个固定IP地址,自己却不知道怎么填进去。Windows10手动修改以太网IP地址这件事,听起来像是一个基础到不能再基础的操作,但真到…

2026/9/19 13:19:57 阅读更多 →
Codeforces Div.3竞赛题解:算法与优化技巧

Codeforces Div.3竞赛题解:算法与优化技巧

1. Codeforces Round 927 (Div. 3) 题解精析作为一名参加过上百场算法竞赛的老兵,今天想和大家分享最近这场Div.3比赛的完整题解。这场比赛的题目质量相当不错,涵盖了模拟、贪心、后缀处理等经典题型,特别适合正在准备蓝桥杯或ACM校赛的同学练…

2026/9/19 13:19:57 阅读更多 →
C#实现西门子S7协议SDK:轻量级PLC通信解决方案

C#实现西门子S7协议SDK:轻量级PLC通信解决方案

1. 项目背景与核心价值作为一名在工业自动化领域摸爬滚打多年的开发者,我深知西门子S7协议在PLC通信中的重要性。这个协议就像工业设备之间的"普通话",掌握了它就能让各种设备顺畅对话。但现实情况是,官方文档晦涩难懂,…

2026/9/19 13:19:57 阅读更多 →

日新闻

BP神经网络时序预测:滑窗长度与多窗口平均策略

BP神经网络时序预测:滑窗长度与多窗口平均策略

简介:面向机器学习、深度学习与数据建模学习者的一份完整研究文献,聚焦BP神经网络在农业产量预测中的应用。文档以1980—2018年全国棉花产量为样本,系统讲解数据归一化处理、激活函数原理、多层神经网络结构搭建及训练流程,展示敏…

2026/9/19 0:00:30 阅读更多 →
Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

上个月调一个Deformable DETR模型,在单卡上要跑将近两天。第二天早上我下意识打开终端翻日志,发现loss从凌晨两点就开始往上爬,一路从0.8涨到1.35,整整六个小时没人发现。那六个小时的训练不仅白跑,还霸占着卡——等于…

2026/9/19 0:00:30 阅读更多 →
OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南 【免费下载链接】opencloud 🌤️ OpenCloud is the open source platform for file management, sharing and collaboration. Simple and sovereign. 项目地址: htt…

2026/9/19 0:00:30 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/19 3:59:36 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/19 3:53:08 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/19 4:02:43 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/15 21:39:18 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →