前端经典面试题合集, DNS HTTP 缓存有哪些实现方式?什么是协商缓存和强制缓存?
前端经典面试题合集, DNS HTTP 缓存有哪些实现方式?什么是协商缓存和强制缓存?
QA
Step 1
Q:: DNS HTTP 缓存有哪些实现方式?
A:: HTTP 缓存主要有两种实现方式:强制缓存和协商缓存。强制缓存通过 Cache-Control 和 Expires 响应头来实现,它们指示浏览器是否可以直接从缓存中读取资源而不需要向服务器发送请求。协商缓存则通过 Last-Modified 和 ETag 响应头来实现,它们要求浏览器向服务器验证缓存资源的有效性,如果资源没有变化,服务器会返回 304
Not Modified 状态码,浏览器则从缓存中读取资源。
Step 2
Q:: 什么是协商缓存?
A:: 协商缓存是一种在客户端与服务器之间进行缓存验证的机制。它利用 Last-Modified 和 ETag 头字段,客户端在缓存资源过期后,会发送请求带上这些字段,服务器通过判断这些字段是否匹配来决定资源是否发生变化,如果没有变化,返回 304
状态码,不返回资源内容,客户端继续使用本地缓存。
Step 3
Q:: 什么是强制缓存?
A:: 强制缓存是一种通过缓存头指示客户端直接使用本地缓存的机制。它通过 Cache-
Control 和 Expires 头字段来控制缓存的有效期。在有效期内,浏览器不会发送请求到服务器,直接使用本地缓存的资源,提高了访问速度,减少了服务器负担。
Step 4
Q:: Cache-
Control 和 Expires 有什么区别?
A:: Cache-Control 是 HTTP/1.1 引入的用于控制缓存的字段,支持多种指令如 max-age、no-cache、no-store 等。而 Expires 是 HTTP/1.0 使用的字段,指定一个具体的过期时间点,过了这个时间点资源就失效。Cache-
Control 更灵活且优先级高于 Expires。
用途
面试这些内容的目的是考察候选人对浏览器缓存机制的理解和运用能力。在实际生产环境中,合理使用缓存策略可以显著提升网页加载速度,减少服务器负载,提高用户体验和资源利用效率。因此,掌握这些知识对于前端开发人员来说是非常重要的。\n相关问题
🦆
ETag 和 Last-Modified 有什么区别?▷
🦆
如何设置浏览器缓存策略?▷
🦆
如何清除浏览器缓存?▷
🦆
浏览器缓存机制对 SEO 有什么影响?▷
🦆
HTTP 304 状态码的意义是什么?▷