Cache-Control 缓存检测

Cache-Control 缓存检测

分析浏览器与共享缓存策略、TTL 和重新验证信号。

输入网站地址后开始检测

网站缓存与回源控制

什么是 Cache-Control?

Cache-Control 是浏览器、代理和 CDN 决定能否保存响应、保存多久以及何时重新验证的核心 HTTP 响应头。

缓存策略应按内容类型制定:带哈希的静态资源适合长缓存和 immutable,动态 HTML 则需要与发布、登录状态和个性化内容保持一致。

检测内容

TTL

浏览器与共享 TTL

区分 max-age、s-maxage、private、public 与 no-store。

VALID

重新验证信号

检查 ETag、Last-Modified、no-cache 和条件请求基础。

VARY

缓存键风险

识别 Vary: * 及缺少明确共享缓存周期的问题。

为什么要检查网站缓存配置?

缺少 TTL 会造成重复回源,错误的长缓存会让用户看到旧内容,no-store 和 Vary: * 则可能让 CDN 完全失去复用能力。

减少服务器回源

让可复用资源由浏览器和边缘节点直接提供。

避免内容长期过期

识别不合理 TTL,并确认重新验证器是否存在。

分清浏览器与 CDN

分别解释 private、public、max-age 和 s-maxage。

Cache-Control 检测如何工作?

工具请求一次公开页面并分析最终响应头;结果仅短时缓存,不建立检测历史。

  1. 01

    安全请求页面

    规范化 URL,拒绝内网地址并限制跳转、超时和响应体积。

  2. 02

    解析缓存指令

    拆解 Cache-Control 指令和数值,读取 Expires 与 Age。

  3. 03

    判断缓存范围

    分别判断浏览器和共享缓存能否保存响应。

  4. 04

    给出修改建议

    根据缺失、禁用、TTL 和 Vary 风险提供具体建议。

Cache-Control 缓存检测常见问题

max-age 和 s-maxage 有什么区别?

max-age 可用于浏览器和共享缓存;s-maxage 只覆盖 CDN、代理等共享缓存的 TTL。

no-cache 是完全不缓存吗?

不是。它允许保存响应,但每次使用前必须向源站重新验证;no-store 才是不保存。

HTML 应该设置一年缓存吗?

通常不应该,除非 URL 永不变化且内容不可变。长缓存更适合文件名带内容哈希的静态资源。

检测结果会保存吗?

不会写入业务数据库,仅使用短时缓存降低重复请求。