HTTP Cache Header Generator
Cache-Controlヘッダーをビジュアルに構築し、ディレクティブを説明します。
Cache-Control: (none)
プリセット
このツールについて
Cache-ControlヘッダーはHTTPキャッシュの基本要素で、ブラウザ、CDN、プロキシがコンテンツをどのように保存・再利用するかを制御します。これを正しく設定することはWebパフォーマンスに不可欠です。設定を誤ると古いコンテンツがユーザーに配信されたり、キャッシュミスから不要なサーバー負荷が発生したりします。しかし構文は複雑で、複数のディレクティブとそれらの相互作用は経験豊富な開発者でも混乱させることが多いです。
このツールはCache-Controlヘッダーのビジュアルビルダーを提供し、個々のディレクティブを切り替えて生成されたヘッダーをリアルタイムで確認できます。`public, max-age=3600, s-maxage=7200, stale-while-revalidate=86400`のような構文を暗記する代わりに、直感的なインターフェースでオプションを選択し、最終的なヘッダーをHTTP応答に直接コピーできます。静的アセット、APIエンドポイント、HTMLページ、CDNキャッシュコンテンツなど一般的なシナリオのプリセットテンプレートが、推測なしに設定をジャンプスタートさせます。
Webエンジニア、DevOpsエンジニア、バックエンド開発者はキャッシュの問題をデバッグしたり、CDNキャッシュポリシーを設定したり、異なるディレクティブの相互作用を学んだりするのに、このツールが非常に役立つでしょう。生成されたヘッダーはサーバー応答(Express.js、FastAPI、Java、Goなど)に直接コピーでき、手動の転記エラーを排除してキャッシュ戦略の実装を高速化します。
よくある質問
コード実装
from flask import Flask, make_response, send_file
import hashlib
import time
app = Flask(__name__)
@app.route('/static/asset')
def serve_immutable_asset():
"""Cache forever — content-hashed file (e.g., bundle.abc123.js)"""
response = make_response("asset content")
response.headers['Cache-Control'] = 'public, max-age=31536000, immutable'
return response
@app.route('/api/data')
def serve_api_data():
"""Short-lived private API response with ETag"""
data = "dynamic content"
etag = hashlib.md5(data.encode()).hexdigest()
response = make_response(data)
response.headers['Cache-Control'] = 'private, max-age=60'
response.headers['ETag'] = f'"{etag}"'
return response
@app.route('/page')
def serve_page():
"""HTML page: always check freshness, cache 10 minutes"""
response = make_response("<html>...</html>")
response.headers['Cache-Control'] = 'public, max-age=600, must-revalidate'
response.headers['Last-Modified'] = 'Mon, 01 Jan 2024 00:00:00 GMT'
return response
@app.route('/auth')
def serve_auth_page():
"""Never cache sensitive pages"""
response = make_response("sensitive content")
response.headers['Cache-Control'] = 'no-store'
return responseComments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.