releases.shpreview

cf.vary option added to Workers fetch requests

1 featureThis release1 featureNew capabilitiesAI-tallied from the release notes

Workers fetch() requests now support the cf.vary request option. Use cf.vary to control how Cloudflare caches origin responses with a Vary header for a single subrequest.

  • JavaScript

    <div><div><span>export</span><span> </span><span>default</span><span> </span><span>{</span></div></div><div><div><span>  </span><span>async</span><span> </span><span>fetch</span><span>(</span><span>request</span><span>)</span><span> </span><span>{</span></div></div><div><div><span>    </span><span>return</span><span> </span><span>fetch</span><span>(</span><span>request</span><span>,</span><span> </span><span>{</span></div></div><div><div><span><span>      </span></span><span>cf</span><span>:</span><span> </span><span>{</span></div></div><div><div><span><span>        </span></span><span>vary</span><span>:</span><span> </span><span>{</span></div></div><div><div><span><span>          </span></span><span>default</span><span>:</span><span> </span><span>{</span><span> action</span><span>:</span><span> </span><span>"bypass"</span><span> </span><span>},</span></div></div><div><div><span><span>          </span></span><span>headers</span><span>:</span><span> </span><span>{</span></div></div><div><div><span><span>            </span></span><span>accept</span><span>:</span><span> </span><span>{</span></div></div><div><div><span><span>              </span></span><span>action</span><span>:</span><span> </span><span>"normalize"</span><span>,</span></div></div><div><div><span><span>              </span></span><span>media_types</span><span>:</span><span> [</span><span>"text/html"</span><span>,</span><span> </span><span>"application/json"</span><span>]</span><span>,</span></div></div><div><div><span>            </span><span>},</span></div></div><div><div><span>            </span><span>"accept-language"</span><span>:</span><span> </span><span>{</span></div></div><div><div><span><span>              </span></span><span>action</span><span>:</span><span> </span><span>"normalize"</span><span>,</span></div></div><div><div><span><span>              </span></span><span>languages</span><span>:</span><span> [</span><span>"en"</span><span>,</span><span> </span><span>"fr"</span><span>,</span><span> </span><span>"de"</span><span>]</span><span>,</span></div></div><div><div><span>            </span><span>},</span></div></div><div><div><span>          </span><span>},</span></div></div><div><div><span>        </span><span>},</span></div></div><div><div><span>      </span><span>},</span></div></div><div><div><span>    </span><span>}</span><span>)</span><span>;</span></div></div><div><div><span>  </span><span>},</span></div></div><div><div><span>};</span></div></div>
  • TypeScript

    <div><div><span>export</span><span> </span><span>default</span><span> </span><span>{</span></div></div><div><div><span>  </span><span>async</span><span> </span><span>fetch</span><span>(</span><span>request</span><span>)</span><span>:</span><span> </span><span>Promise</span><span><</span><span>Response</span><span>></span><span> </span><span>{</span></div></div><div><div><span>    </span><span>return</span><span> </span><span>fetch</span><span>(</span><span>request</span><span>,</span><span> </span><span>{</span></div></div><div><div><span><span>      </span></span><span>cf</span><span>:</span><span> </span><span>{</span></div></div><div><div><span><span>        </span></span><span>vary</span><span>:</span><span> </span><span>{</span></div></div><div><div><span><span>          </span></span><span>default</span><span>:</span><span> </span><span>{</span><span> action</span><span>:</span><span> </span><span>"bypass"</span><span> </span><span>},</span></div></div><div><div><span><span>          </span></span><span>headers</span><span>:</span><span> </span><span>{</span></div></div><div><div><span><span>            </span></span><span>accept</span><span>:</span><span> </span><span>{</span></div></div><div><div><span><span>              </span></span><span>action</span><span>:</span><span> </span><span>"normalize"</span><span>,</span></div></div><div><div><span><span>              </span></span><span>media_types</span><span>:</span><span> [</span><span>"text/html"</span><span>,</span><span> </span><span>"application/json"</span><span>]</span><span>,</span></div></div><div><div><span>            </span><span>},</span></div></div><div><div><span>            </span><span>"accept-language"</span><span>:</span><span> </span><span>{</span></div></div><div><div><span><span>              </span></span><span>action</span><span>:</span><span> </span><span>"normalize"</span><span>,</span></div></div><div><div><span><span>              </span></span><span>languages</span><span>:</span><span> [</span><span>"en"</span><span>,</span><span> </span><span>"fr"</span><span>,</span><span> </span><span>"de"</span><span>]</span><span>,</span></div></div><div><div><span>            </span><span>},</span></div></div><div><div><span>          </span><span>},</span></div></div><div><div><span>        </span><span>},</span></div></div><div><div><span>      </span><span>},</span></div></div><div><div><span>    </span><span>}</span><span>)</span><span>;</span></div></div><div><div><span>  </span><span>},</span></div></div><div><div><span>}</span><span> </span><span>satisfies</span><span> </span><span>ExportedHandler</span><span>;</span></div></div>

For more information, refer to cf.vary.

Fetched July 2, 2026