为什么设置了Cache-Control:no-cache 服务器还是返回304 Not Modified ?

请输入图片描述

如图,为什么设置了 Cache-Control:no-cache 服务器还是返回 304 Not Modified ?

阅读 9.7k
3 个回答

Cache-Control:no-cache 并不代表没有缓存,只是缓存期限时间为0
如果想要不缓存可设置为Cache-Control:no-store

304 的原因是 etag。

服务器发送 etag(http response header中)给浏览器,浏览器将文件和对应的etag保存下来。下一次再访问这个文件,浏览器发送 If-None-Match:etag (http header)给服务器,服务器收到后检查这个etag和服务器自己保存的是否一致。如果一致,就返回 304 给浏览器,即使用缓存副本。否则,浏览器下载新文件(http status 200)。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进