← Cloudflare Workers / workers / static-assets
Hlavičky
Výchozí hlavičky
Při poskytování statických aktiv Workers ve výchozím nastavení přidají k odpovědi několik hlaviček. Jsou to:
-
Content-TypeA
Content-Typehlavička se k odpovědi připojí, pokud je poskytnuta během proces nahrávání aktiv. Wrangler automaticky určuje typ MIME souboru na základě jeho přípony. -
Cache-Control: public, max-age=0, must-revalidateOdesláno, pokud požadavek nemá
AuthorizationneboRangehlavičky tato hlavička odpovědi prohlížeči sděluje, že aktivum lze uložit do mezipaměti, ale prohlížeč by měl před každým použitím ověřit čerstvost obsahu. Toto výchozí chování zajišťuje dobrý výkon webu u statických stránek a zároveň zaručuje, že se nikdy nedoručí zastaralý obsah. -
ETagTato hlavička doplňuje výchozí
Cache-Controlhlavička. Její hodnota je hash souboru statického aktiva a prohlížeče ji mohou v dalších požadavcích použít sIf-None-Matchhlavičku ke kontrole čerstvosti obsahu, aniž byste museli při shodě znovu stahovat celý soubor. -
CF-Cache-StatusTato hlavička udává, zda byl prvek doručen z cache (
HIT) nebo ne (MISS).1
Cloudflare si vyhrazuje právo kdykoli připojit k odpovědím se statickými assety nové hlavičky za účelem zlepšení výkonu nebo zabezpečení vaší aplikace Worker.
Vlastní hlavičky
Výchozí hlavičky odpovědí u statických souborů lze přepsat, odebrat nebo doplnit vytvořením prostého textového souboru s názvem _headers bez přípony souboru v adresáři statických prostředků vašeho projektu. Tento soubor se sám o sobě neposkytuje jako statický prostředek, ale zpracuje ho Workers a jeho pravidla se použijí na odpovědi statických prostředků.
Pokud používáte framework, budete mít často adresář s názvem public/ nebo static/, a obvykle obsahuje assety připravené k nasazení, jako jsou favicony, robots.txt soubory a manifesty webu. Tyto soubory se během sestavení zkopírují do výsledného výstupního adresáře, takže je to ideální místo pro vytváření vašich _headers soubor. Pokud nepoužíváte framework, _headers soubor můžete vložit přímo do adresář statických aktiv.
Hlavičky definované v _headers soubor přepíší to, co Cloudflare běžně odesílá.
Přidání hlavičky
Pravidla pro hlavičky se definují ve víceřádkových blocích. První řádek bloku obsahuje URL nebo vzor URL, na který se mají hlavičky pravidla použít. Na dalším řádku musí následovat odsazený seznam názvů a hodnot hlaviček:
[url]
[name]: [value]Použití absolutních URL je podporováno, mějte však na paměti, že absolutní URL musí začínat https a zadání portu není podporováno. _headers pravidla při porovnávání s příchozím požadavkem ignorují jeho port a protokol. Například pravidlo jako https://example.com/path by odpovídalo požadavkům na other://example.com:1234/path.
Můžete definovat libovolný počet [name]: [value] párů na dalších řádcích. Například:
# This is a comment
/secure/page
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Referrer-Policy: no-referrer
/static/*
Access-Control-Allow-Origin: *
X-Robots-Tag: nosnippet
https://myworker.mysubdomain.workers.dev/*
X-Robots-Tag: noindexPříchozí požadavek, který odpovídá vzorům URL více pravidel, zdědí hlavičky všech těchto pravidel. Při použití předchozího _headers soubor, budou mít následující požadavky přiřazené tyto hlavičky:
| Request URL | Hlavičky |
|---|---|
https://custom.domain/secure/page |
X-Frame-Options: DENY X-Content-Type-Options: nosniff Referrer-Policy: no-referrer |
https://custom.domain/static/image.jpg |
Access-Control-Allow-Origin: * X-Robots-Tag: nosnippet |
https://myworker.mysubdomain.workers.dev/home ↗ |
X-Robots-Tag: noindex |
https://myworker.mysubdomain.workers.dev/secure/page ↗ |
X-Frame-Options: DENY X-Content-Type-Options: nosniff Referrer-Policy: no-referrer X-Robots-Tag: noindex |
https://myworker.mysubdomain.workers.dev/static/styles.css ↗ |
Access-Control-Allow-Origin: * X-Robots-Tag: nosnippet, noindex |
Můžete definovat až 100 pravidel pro hlavičky. Každý řádek v _headers soubor má limit 2,000 znaků. Do tohoto limitu se počítá celý řádek včetně mezer, názvu hlavičky a hodnoty.
Pokud se hlavička dvakrát použije v _headers soubor, hodnoty se spojí pomocí čárky jako oddělovače.
Odpojit hlavičku
Výchozí hlavičku nebo hlavičku přidanou obecnějším pravidlem můžete odstranit tak, že před její název vložíte vykřičník a mezeru (! ).
/*
Content-Security-Policy: default-src 'self';
/*.jpg
! Content-Security-PolicyShoda cesty
Stejné funkce porovnávání URL adres, které _redirects nabízí, je také dostupné pro _headers soubor. Mějte však na paměti, že přesměrování se uplatňují před hlavičkami, takže pokud požadavek odpovídá jak přesměrování, tak hlavičce, má přednost přesměrování.
Splaty
Při porovnávání je splat vzor, který se označuje hvězdičkou (*) tento vzor hladově porovná všechny znaky. V URL smíte použít jen jeden splat.
Nalezenou hodnotu lze v hodnotě hlavičky odkázat jako :splat zástupný symbol.
Zástupné symboly
Zástupný symbol lze definovat pomocí :placeholder_name. Dvojtečka (:) následovaný písmenem označuje začátek zástupného symbolu a název zástupného symbolu, který následuje, smí obsahovat pouze alfanumerické znaky a podtržítka (:[A-Za-z]\w*). Na každý pojmenovaný zástupný symbol lze odkázat jen jednou. Zástupné symboly odpovídají všem znakům kromě oddělovače, kterým je v případě hostitele tečka (.) nebo lomítko (/) a smí to být pouze lomítko (/) pokud je součástí cesty.
Podobně lze shodnutou hodnotu použít v hodnotách hlaviček pomocí :placeholder_name.
/movies/:title
x-movie-name: You are watching ":title"Příklady
Cross-Origin Resource Sharing (CORS)
Chcete-li ostatním doménám umožnit načítat všechny statické assety z vašeho Workeru, můžete do _headers soubor:
/*
Access-Control-Allow-Origin: *Tím se použije Access-Control-Allow-Origin hlavičku ke každé příchozí URL. Specifikace CORS ovšem povoluje pouze *, null, nebo přesný origin jako platný Access-Control-Allow-Origin hodnoty: vzory se zástupnými znaky (wildcard) v origins nejsou podporovány. Chcete-li povolit CORS z konkrétních URL náhledů, budete to muset ve svém kódu Workeru řešit dynamicky, nikoli prostřednictvím _headers .
Zabraňte zobrazování adres URL workers.dev ve výsledcích vyhledávání
Google ↗ a další vyhledávače často podporují X-Robots-Tag hlavičku, aby prohledávačům sdělil, jak se má indexovat váš web.
Chcete-li například zabránit tomu, aby váš *.*.workers.dev URL adres před indexováním přidejte do svého _headers soubor:
https://:version.:subdomain.workers.dev/*
X-Robots-Tag: noindexNakonfigurujte vlastní chování mezipaměti prohlížeče
Pokud máte složku s fingerprintovanými assets (assets, které mají v názvu souboru hash), můžete v prohlížeči nastavit agresivnější ukládání do mezipaměti a zlepšit tak výkon pro opakované návštěvníky:
/static/*
Cache-Control: public, max-age=31556952, immutablePosilte zabezpečení aplikace
Clickjackingu můžete zabránit tím, že prohlížečům sdělíte, aby vaši aplikaci nevkládaly do jiné (například pomocí <iframe>) s X-Frame-Options ↗ hlavička.
X-Content-Type-Options: nosniff ↗ brání prohlížečům interpretovat odpověď jako jiný content-type, než jaký je definovaný pomocí Content-Type hlavička.
Referrer-Policy ↗ umožňuje upravit, kolik informací o tom, odkud přicházejí, návštěvníci poskytnou při odchodu z vaší stránky.
Funkce prohlížeče lze v různé míře deaktivovat pomocí Permissions-Policy ↗ hlavička (nedávno přejmenována z Feature-Policy).
Pokud potřebujete podrobnou kontrolu nad obsahem své aplikace, Content-Security-Policy ↗ hlavička vám umožňuje nastavit řadu bezpečnostních voleb, včetně ovládacích prvků podobných X-Frame-Options hlavička.
/app/*
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Referrer-Policy: no-referrer
Permissions-Policy: document-domain=()
Content-Security-Policy: script-src 'self'; frame-ancestors 'none';Poznámky pod čarou
-
Kvůli technickému omezení, které chceme v budoucnu vyřešit,
CF-Cache-Statushlavička není vždy zcela přesná. Mohou nastat falešně pozitivní i falešně negativní výsledky, i když jen zřídka. Tuto hlavičku je proto třeba považovat za hlavičku vracející „pravděpodobnostní“ výsledek. ↩