HTTP Cache Header Generator
直观地构建Cache-Control标头并解释指令。
生成的请求头
Cache-Control: (none)
预设
关于此工具
Cache-Control 标头是 HTTP 缓存的基本组成部分,它控制浏览器、CDN 和代理如何存储和重用内容。正确配置它对于网络性能至关重要——配置错误会导致向用户提供过期内容或因缓存未命中而造成不必要的服务器负载。然而,其语法很复杂,多个指令及其相互作用即使是经验丰富的开发者也容易困惑。
此工具提供了一个 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.