html - 为什么这个请求返回 200(来自缓存)而其他请求返回 304?

标签 html css node.js caching frontend

嗯,我正在研究浏览器缓存并编写一个 Node http 服务器来帮助我学习,我同时使用了缓存控制和上次修改。然后在Chrome中输入这个url,我直接按F5看缓存能不能用。最后结果好像有点奇怪。 one return 200 and the others return 304 as excepted

Intro_1.jpg 由 style.css 加载 (background-image:url(../images/intro_1.jpg); ) 那么为什么这个请求返回 200(来自缓存)而其他请求返回 304? 那是对的吗?

最佳答案

,200 与 304 状态代码始终取决于资源是否已“过期”。您是对的,状态代码 200 表示来自缓存 - 未发出 HTTP 请求 - 这就是您在 DevTools 中看到 From Memory Cache 的原因。状态代码 304 表示缓存条目已过期,浏览器别无选择,只能发出 HTTP 请求以询问服务器是否进行了任何更改。服务器返回 304 状态代码是一种告诉浏览器它不需要下载新版本资源并且可以继续使用相同缓存条目的方式。

更多:What is the difference between HTTP status code 200 (cache) vs status code 304?

每个资源都有自己的超时值,所以有可能一些 会过期而其他人不会。您应该在 DevTool 中检查 HTTP 响应——在 Network 选项卡中,单击一个请求,然后在右侧单击 Response。您可以看到服务器提供给浏览器的到期值。检查资源是否有不同的max-age,或者它们是否有不同的last-modified。我敢肯定,在这种情况下,jpg 在 CSS 文件中并不重要。

关于html - 为什么这个请求返回 200(来自缓存)而其他请求返回 304?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40714934/

相关文章:

javascript - 如何抓取 HTML5 网站并将其 HTML 内容转换为 PDF(使用 Python 或 Ruby 库)?

html - 在 CKEditor 中,字体格式不适用于空段落

jquery - 如何在执行 jquery 代码时修复浏览器

node.js - Vorto-Dashboard 不显示设备数据

json - 在 Node + express + Jade 中将对象传递给客户端?

javascript - 当我将位置更改为固定时,为什么我的导航向左浮动?如何解决该问题并使其居中?

javascript - 单击按钮即可显示表格

javascript - 动态地按比例计算 css translate 属性值

javascript光标图像位置

javascript - 带/不带尾部斜线的 Node.js 重定向