HTTPキャッシュ制御ヘッダービルダー
キャッシュ可能性、鮮度、再検証ディレクティブから有効なHTTP Cache-Controlヘッダーを構築します。コンテキストプリセットを選択するか、ディレクティブを個別に切り替えて、平易な説明と矛盾した組み合わせ(no-storeをmax-ageと組み合わせるなど)の警告を表示します。
入力
一般的なコンテキストを選択してキュレーションされたディレクティブの組み合わせを入力するか、カスタムのままディレクティブを手動で切り替えます。
キャッシュ可能性
CDNやプロキシなどの共有キャッシュを含むあらゆるキャッシュがレスポンスを保存することを許可します。通常はキャッシュ不可と扱われるレスポンスでも。
キャッシュをリクエスト元ブラウザのみに制限します。共有キャッシュはこのレスポンスを保存してはいけません。
保存は許可しますが、再利用前に毎回オリジンで再検証を強制します。名前に反してキャッシュを無効化しません。
どのキャッシュもどこにもレスポンスを保存することを禁止します。最も厳格なディレクティブです。
鮮度
ブラウザと共有キャッシュの両方でレスポンスが新鮮な期間(秒)。省略する場合は空白のままにします。
共有キャッシュ(CDN、プロキシ)のみでmax-ageをオーバーライドします。省略する場合は空白のままにします。
鮮度期限切れ後、バックグラウンドで再検証しながらこの秒数までの間、古いレスポンスを配信します。省略する場合は空白のままにします。
再検証に失敗した場合(オリジンエラーまたはタイムアウト)、エラーの代わりにこの秒数までの間古いレスポンスを配信します。省略する場合は空白のままにします。
再検証とその他
古くなったレスポンスは再利用前にオリジンで再検証されなければなりません。オリジンが到達不可でも古いデータを配信してはいけません。
must-revalidateと同じですが、共有キャッシュのみに適用されます。ブラウザには影響しません。
新鮮な間、ボディが変わることはないとブラウザに伝えます。ユーザー実行リロード時も含め条件付き再検証をスキップできます。max-age/s-maxageなしではmaxAge/sMaxageなしでは意味がありません。
キャッシュとプロキシがレスポンスボディを(画像の再圧縮など)変更することを禁止します。
キャッシュはステータスコードのセマンティクスを理解する場合のみレスポンスを保存できます。通常はno-storeと組み合わせて使用します。
出力
サーバーレスポンス設定に貼り付ける準備ができた完全なヘッダー行。
| ディレクティブ | 効果 |
|---|---|
| No data yet | |
矛盾したまたは部分的に冗長な組み合わせ。ヘッダーは生成されますが、これらのディレクティブは一緒に期待どおりに動作しないかもしれません。
ガイド
HTTPキャッシュ制御ヘッダービルダーとは
Cache-ControlはHTTPレスポンスヘッダーで、ブラウザ、CDN、プロキシにレスポンスをキャッシュ可能か、期間、古くなった後の再検証方法を伝えます。最も誤りやすいヘッダーの1つです。no-cacheは「キャッシュしないこと」を意味しません。no-storeは一緒に設定した他のほぼすべてを静かに上書きします。s-maxageは共有キャッシュのみに関係し、max-ageは両方に関係します。このツールは個別のディレクティブ(またはキュレーションされたプリセット)から正しいヘッダーを組み立て、平易な言語で各アクティブディレクティブが正確に何をするかを説明します。矛盾したり部分的に相互にキャンセルする組み合わせもフラグを立てます。
使用方法
- 一般的なシナリオ向けのContext Presetを選択します。APIレスポンス、静的アセット、HTMLページ、またはプライベートデータ。またはCustomのままディレクティブを手動で切り替えます。
- カスタムモードで、適用可能なCacheabilityディレクティブをチェックします(
public、private、no-cache、no-store)。Freshnessの有効期間を秒単位で設定します(max-age、s-maxage、stale-while-revalidate、stale-if-error)。必要なRevalidationディレクティブを有効化します(must-revalidate、proxy-revalidate、immutable、no-transform、must-understand)。 - Cache-Control Headerボックスは自動的に更新されます。サーバー設定、CDNルール、またはアプリケーションコードに直接コピーします。
- What Each Directive Doesを読んで、有効化した各ディレクティブの平易な説明を確認します。Warningsで設定した他のディレクティブと矛盾または静かに相互にキャンセルする事項がないかチェックします。
プリセットの選択
- API response —
no-store。誰にもキャッシュされてはいけない動的なリクエスト単位のデータ。 - Static asset —
public, max-age=31536000, immutable。ハッシュまたはバージョン付きファイル名(app.a1b2c3.js)のファイル用。URL自体が変わるときにコンテンツが変わるので、1年間キャッシュして再検証を完全にスキップするのは安全です。 - HTML page —
no-cache。URLは同じでもコンテンツが変わる場合。キャッシュはそれを保存できますが、再度提供する前にオリジンで確認する必要があります。 - Private data —
private, max-age=0, must-revalidate。アカウントページ、カート、ユーザー固有のもの。ブラウザのみでキャッシュ可能で、常に再検証されます。
FAQ
no-cacheとno-storeの違いは何ですか?
no-cacheはキャッシュがレスポンスを保存することを許可しますが、再度提供する前にオリジンサーバーで再検証を強制します。「最初にチェック」ディレクティブで、「キャッシュしないこと」ではありません。no-storeは厳密なバージョンです。キャッシュはレスポンスを保存できません。no-storeをmax-ageやmust-revalidateなどのディレクティブと混ぜることは無効ではありませんが、それらのディレクティブは無意味になります。no-storeはすでに保存を禁止しているため。
max-ageとs-maxageの違いは何ですか?
max-ageはすべてのキャッシュの鮮度有効期限を設定します。ブラウザと間にある共有キャッシュ(CDN、プロキシ)の両方。s-maxageはその有効期限を共有キャッシュのみでオーバーライドします。CDNでレスポンスをキャッシュする期間をブラウザより長く(または短く)設定できます。privateレスポンスのs-maxageは効果がありません。共有キャッシュはそもそもプライベートレスポンスの保存が許可されないため。
immutableはレスポンスが再検証されないことを意味しますか?
鮮度ウィンドウ内のみです。immutableはブラウザに、max-age(またはs-maxage)がレスポンスが新鮮だと言う間、ユーザーがトリガーしたリロードを含む条件付き再検証リクエストを完全にスキップできることを伝えます。そのウィンドウが終わると、通常の再検証ルールが再び適用されます。max-age/s-maxageなしでimmutableを設定すると、適用される鮮度ウィンドウがありません。
Cache-Controlは必要な唯一のキャッシングヘッダーですか?
鮮度とストレージを制御するための主要なものです。ただしETagやLast-Modifiedなどのバリデーターは再検証リクエストに重要です。max-age期限切れ後にキャッシュがオリジンに返送して「変わりましたか?」と質問するものです。秒計算なしで使用可能なmax-age=値に期間を変換するには、Cache TTL Calculatorを使用します。クロスオリジンリクエストの同等のヘッダービルドワークフローについては、CORS Headers Builderを参照します。
プライバシー
このツールはブラウザで完全に実行されます。設定したディレクティブと値が当サーバーに送信または保存されることはありません。
このツールを使う他の方法
REST API
curl -X POST https://api.iotools.cloud/v1/tool/cache-control-header-builder \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"preset": "staticAsset"
}'ご自身のアカウントのキーに差し替えてください。ツールのフィールドがそのままリクエストボディになります——ラッパーはありません。
AIエージェントに依頼する
Use the IOTools `cache-control-header-builder` tool (HTTP Cache-Control Header Builder) on this input:
YOUR_INPUT_HEREIOTools MCPサーバーに接続された任意のエージェントにこれを貼り付け、入力内容を追加してください。
埋め込みウィジェット
<iframe
src="https://iotools.cloud/embed/cache-control-header-builder/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="HTTPキャッシュ制御ヘッダービルダー — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>ご自身のページに貼り付けるだけ——無料、キー不要、リンクを掲載するだけです。
| 1回あたりの費用 | 5クレジットから |
|---|