星海

浏览器原理 · 单选题 · 第 23 题

前端与全栈开发面试 · 第 23 题

关于浏览器的 HTTP 缓存,下列说法正确的是?

  1. A协商缓存命中时浏览器完全不会发出请求,服务器也无法感知到这次资源的读取
  2. B强缓存命中时浏览器仍会把请求发到服务器,由服务器返回 304 后才使用本地副本
  3. C强缓存有效时不发请求、直接用本地副本;过期后带 If-None-Match 协商,未变则返回 304
  4. D只要响应头里带了 ETag,浏览器就会把资源永久缓存,之后永远不会再向服务器验证

答案

C C. 强缓存有效时不发请求、直接用本地副本;过期后带 If-None-Match 协商,未变则返回 304

解析

强缓存由 Cache-Control: max-age(以及旧的 Expires)控制,命中时 DevTools 显示 from memory cache 或 disk cache。协商缓存用 ETag/If-None-Match 或 Last-Modified/If-Modified-Since,需要一次往返,命中返回 304、不带响应体。常见策略是:带哈希的静态文件长期强缓存,HTML 用 no-cache 每次协商。

在线刷这套题:即时判分、错题本、闪卡复习,不用登录就能练。