コンテンツにスキップ

ステータスコードによるキャッシュ

エンタープライズ顧客は、オリジンウェブサーバーからの応答ステータスに基づいてキャッシュの有効期限(TTL)を設定できます。キャッシュTTLは、リソースがCloudflareネットワーク内でSTALEとしてマークされるか、キャッシュから破棄されるまでの期間を指します。ステータスコードは、リソースのオリジンによって返されます。

応答ステータスに基づいてキャッシュTTLを設定すると、静的ファイルのデフォルトキャッシュ動作(標準キャッシング)が上書きされ、オリジンウェブサーバーから送信されたキャッシュ指示が上書きされます。非静的アセットをキャッシュするには、キャッシュルールを使用してすべてをキャッシュするキャッシュレベルを設定します。no-store Cache-Controlや低いTTL(max-age/s-maxageを使用)を設定すると、オリジンウェブサーバーへのリクエストが増加し、パフォーマンスが低下します。

キャッシュ制限

Free、Pro、Business顧客の最大キャッシュ制限はファイルごとに512 MBで、エンタープライズ顧客の最大キャッシュ制限はファイルごとに5 GBです。制限を引き上げる必要がある場合は、カスタマーサクセスマネージャーにお問い合わせください。

エッジTTL

デフォルトでは、Cloudflareは、cache-controlディレクティブまたはexpires応答ヘッダーが存在しない場合、次のエッジキャッシュTTLで特定のHTTP応答コードをキャッシュします。

HTTPステータスコードデフォルトTTL
200, 206, 301120m
302, 30320m
404, 4103m

その他のすべてのステータスコードはデフォルトでキャッシュされません。

Cloudflareダッシュボードを介して応答ステータスによるキャッシュTTLを設定

応答ステータスによるキャッシュTTLを設定するには、ステータスコードによるキャッシュTTLのためにキャッシュルールを作成します。

Cloudflare APIを介して応答ステータスによるキャッシュTTLを設定

リクエスト
curl --request PUT \
"https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id}" \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"rules": [
{
"expression": "(http.host eq \"www.example.com\")",
"description": "応答ステータスによるキャッシュTTLを設定",
"action": "set_cache_settings",
"action_parameters": {
"cache": true,
"edge_ttl": {
"status_code_ttl": [
{
"status_code_range": {
"to": 299
},
"value": 86400
},
{
"status_code_range": {
"from": 300,
"to": 499
},
"value": 0 // no-cache
},
{
"status_code_range": {
"from": 500
},
"value": -1 // no-store
}
],
"mode": "respect_origin"
}
}
}
]
}'

構文

ステータスコードとそれに対応するTTLを含むJSONオブジェクトを提供します。ステータスによるキャッシュTTLのキャッシュルールの各キーと値のペアは、次の構文を持っています。

  • status_code: 200や500などの整数値。status_codeはオリジンウェブサーバーからの正確なステータスコードと一致します。有効なステータスコードは100-999の範囲です。
  • status_code_range: fromtoの整数値。status_code_rangeは、指定された範囲内のオリジンウェブサーバーからの任意のステータスコードと一致します。
  • value: アセットが有効な期間を秒単位で定義する整数値、または次の文字列のいずれか:no-store-1に相当)、no-cache0に相当)。

Cloudflare Workerを介して応答ステータスによるキャッシュTTLを設定

cacheTtlByStatusオプションは、リクエストの応答ステータスコードに対してキャッシュTTLを指定するcacheTtl機能のバージョンです(例:{ "200-299": 86400, 404: 1, "500-599": 0 })。