建站

HTTP缓存验证怎么做:ETag与304各自代表什么

资料核对与更新:2026-10-28 · 阅读约2分钟

修改网页后想确认缓存是否生效,需要区分缓存命中、条件请求和实际资源内容。本文介绍 ETag 与 304 的检查方法。

不同屏幕尺寸的响应式网页设计示意
不同屏幕尺寸的响应式网页设计示意;作者:Muhammad Rafizeldi ( MRafizeldi );许可:CC BY-SA 3.0。主题示意配图,非本文操作截图。 图片来源 · 许可说明

浏览器网络面板出现 304,不等于页面请求失败。对于条件请求,服务器确认缓存副本仍可使用时,可以返回 304,让客户端继续使用已有内容。要判断配置是否正确,需结合请求和响应头。

先看缓存规则

记录资源地址、Cache-Control、ETag 和页面加载时间。浏览器私有缓存与 CDN 等共享缓存可能遵循不同规则。对于包含用户信息的页面,要按实际需求设置缓存范围,不能把所有页面套用同一套长期公共缓存。

检查条件请求

当客户端带着已有版本标识重新验证时,服务器可以比较资源是否变化。内容未变化可能得到 304;内容变化应返回新的内容和适当的缓存标识。强制刷新、禁用缓存等操作会改变测试条件,要在记录中注明。

更新后做对照

固定一个资源版本,保存第一次请求的响应头,再请求一次,观察条件头和响应。修改文件后重新测试,确保浏览器能获得预期新内容。经过 CDN 时,还要分别核对源站和 CDN,避免把中间层旧内容归咎于浏览器。

ETag 不代表加密保护,也不能代替访问权限。长缓存静态资源适合配合带版本的文件名;修改后的 HTML 应引用实际存在的新文件,避免页面与脚本版本不一致。

参考资料

资料核对日期:2026年10月28日。

MDN:HTTP缓存

MDN:ETag

本文新增价值
针对HTTP缓存验证整理常见误区、操作顺序和验证方法,区分官方资料说明与面向实际问题的维护建议。