INTEGRITY Dokumentace

Přizpůsobení chování cache pomocí Workers

Můžete použít Workers přizpůsobit chování mezipaměti v síti Cloudflare. Workers fungují jako middleware v životním cyklu požadavku: jeden Worker obsluhuje jak fázi požadavku, tak fázi odpovědi. Když požadavek dorazí, projde Workerem ještě před kontrolou mezipaměti. Worker může příchozí požadavek upravit (například přepsat URL adresu nebo přidat hlavičky) a poté zavolat fetch() pokračovat v požadavku přes mezipaměť. Jakmile se vrátí odpověď, ať už z mezipaměti nebo z origin serveru, může Worker odpověď před odesláním návštěvníkovi ještě upravit.

Diagram níže znázorňuje běžný tok interakce mezi Workers a Cache.

Diagram příkladu toku mezi Workers a mezipamětí.
  1. Návštěvník (a) vyžádá adresu URL a tato žádost je směrována na Worker. Worker pak může se žádostí pracovat, například vyžádat obsah z origin serveru pomocí (b) fetch() nebo odesláním odpovědi (f) zpět návštěvníkovi.
  2. Pokud je obsah uložen v mezipaměti, mezipaměť odešle odpověď (e) zpět Workeru, který může odpověď upravit před odesláním odpovědi (f) zpět návštěvníkovi.
  3. Při použití cache rules s Workers musí pravidlo mezipaměti odpovídat vlastnostem adresy URL v fetch() (b), jako jsou hlavičky, název hostitele nebo cesta URL adresy, nikoli původní URL adresu/hostitele návštěvníka (a). Jinak se pravidlo nepoužije.

Několik příkladů, jak lze pomocí Workers přizpůsobit chování mezipaměti:

Můžete také použít Snippets pro drobné úpravy, jako jsou změny hlaviček, přesměrování nebo ověřování JWT, aniž byste museli nasazovat celý skript Workeru. Snippets jsou u všech placených plánů součástí bez příplatku, ale mají přísnější limity zdrojů (doba běhu 5 ms, velikost balíčku 32 KB).

Funkce mezipaměti ve Workers

Workers nabízí dva způsoby, jak pracovat s mezipamětí. Použijte fetch() když váš Worker odesílá dílčí požadavky na origin. Rozhraní Cache API použijte tehdy, když váš Worker generuje odpovědi bez backendového originu.

Více o tom, jak spolu Cache a Workers spolupracují, najdete v Mezipaměť ve Workers.