返回
浏览器缓存,前端面试常备06
前端
2023-09-26 14:34:52
浏览器缓存,前端面试常备06
浏览器缓存过程
浏览器与服务器通信的过程是一种应答模式:浏览器发起一个请求,服务器根据请求中参数返回结果。缓存可以减少数据传输量,提高访问效率。浏览器第一次向服务器请求后拿到请求结果,第二次请求相同资源时,浏览器会先检查本地缓存中是否有该资源的副本,如果有,则直接从本地缓存中读取资源,而无需再次向服务器请求。
缓存机制
浏览器缓存机制主要包括以下几个方面:
- 强缓存:如果资源的 HTTP 头部中包含 Expires 或 Cache-Control: max-age=xxx,则表示该资源具有强缓存特性。强缓存下的资源在缓存有效期内,浏览器会直接从本地缓存中读取,而不会向服务器发送请求。
- 协商缓存:如果资源的 HTTP 头部中包含 Last-Modified 或 ETag,则表示该资源具有协商缓存特性。协商缓存下的资源,在缓存有效期内,浏览器会向服务器发送请求,并附带 Last-Modified 或 ETag 头部,服务器根据请求中的头部信息决定是否返回资源。
- 条件缓存:如果资源的 HTTP 头部中包含 If-Modified-Since 或 If-None-Match,则表示该资源具有条件缓存特性。条件缓存下的资源,在缓存有效期内,浏览器会向服务器发送请求,并附带 If-Modified-Since 或 If-None-Match 头部,服务器根据请求中的头部信息决定是否返回资源。
缓存策略
浏览器缓存策略主要包括以下几种:
- 不缓存:如果资源的 HTTP 头部中包含 Cache-Control: no-cache,则表示该资源不会被缓存。
- 仅缓存一部分:如果资源的 HTTP 头部中包含 Cache-Control: public, max-age=xxx,则表示该资源可以被缓存,但只缓存一部分。
- 缓存全部:如果资源的 HTTP 头部中包含 Cache-Control: public, max-age=xxx,则表示该资源可以被缓存,并且缓存全部内容。
HTTP 缓存
HTTP 缓存是指浏览器根据 HTTP 头部信息对资源进行缓存。HTTP 头部中包含一些与缓存相关的字段,比如 Expires、Cache-Control、Last-Modified、ETag 等。这些字段可以帮助浏览器判断资源是否需要缓存,以及缓存多长时间。
浏览器缓存控制
浏览器缓存控制是指浏览器根据自己的策略对资源进行缓存。浏览器可以通过设置缓存策略来控制哪些资源可以被缓存,以及缓存多长时间。浏览器缓存控制可以通过浏览器设置、扩展程序或脚本来实现。
总结
浏览器缓存是前端面试常备问题之一。通过了解浏览器缓存的过程、缓存机制、缓存策略、HTTP 缓存和浏览器缓存控制,可以帮助您在面试中脱颖而出。