首页/网络/协议速查/304 Not Modified 未修改
HTTP 方法与状态码91 条

304 Not Modified 未修改

条件请求(If-None-Match/If-Modified-Since)的结果:资源未变化,客户端可直接用本地缓存。

协议速查网络更新于 2026-10-12
名称304 Not Modified
作用协商缓存命中,不传响应体
规范RFC 9110 §15.4.5;RFC 9111 §4.3.4
头部应带 ETag/Date/Cache-Control/Vary 等缓存相关头

条件请求示例

条件请求示例
curl -si https://static.example.com/app.js \
  -H 'If-None-Match: "v17-abc"'
# HTTP/1.1 304 Not Modified
# ETag: "v17-abc"
# Cache-Control: max-age=60
304 必须没有响应体;它的延迟应该很小(几毫秒),如果 304 很慢说明源站校验逻辑成本高,考虑延长 max-age。

易错点

  • CDN/浏览器未命中强缓存时每请求都做 304 校验,会额外产生一次 RTT;静态资源应优先强缓存
  • 框架把 304 误配成 200 全量返回或 204,破坏缓存语义

数据来源与参考

  • RFC 9110 §15.4.5 304 Not Modified
  • RFC 9111 §4.3.4 304 的缓存处理

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌