web面试常问http缓存解析相关(web测试面试都问什么)学到了

随心笔谈9个月前发布 admin
213 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

这篇文章主要介绍了HTTP缓存的相关知识,重点围绕缓存的原理、实现以及应用场景展开。以下是文章的核心内容总结: 1. **HTTP缓存的作用**: - 在网页加载过程中,缓存能够减少网络请求的体积和数量,从而加快页面加载速度。网络请求是网页加载过程中的主要瓶颈,缓存通过从本地缓存中直接读取资源,避免频繁请求服务器。 2. **缓存控制的实现**: - 当首次访问某个网站时,后端会将资源(如CSS、JS、图片)缓存到浏览器中。 - 缓存会在响应头中添加配置信息(如时间戳),并在资源过期时触发重新加载。 - 缓存控制的配置通常由后端开发完成,前端无需直接干预。 3. **协商缓存(Cache Negotiation)**: - 协商缓存是一种服务端缓存策略,通过资源标识进行对比完成资源的缓存与加载。 - 服务器在首次请求时返回资源和资源标识,浏览器将资源标识缓存。 - 在后续请求中,浏览器携带资源标识,服务器会根据标识对比最新的资源版本,决定是否重新加载资源。 4. **资源标识的对比**: - 资源标识通常有两种形式:`If-Modified-Since` 和 `If-None-Match`。 - `If-Modified-Since` 基于资源上次修改的时间戳,精确到秒级。 - `If-None-Match` 使用资源的唯一字符串,能够更准确地判断资源内容是否变化。 - 优先使用 `ETag`(基于内容哈希值)而非 `Last-Modified`(基于文件大小和修改时间),因为 `ETag` 能更准确地判断资源内容是否一致。 5. **缓存策略的优化**: - 对于频繁生成但内容相同的文件,使用 `ETag` 可以更高效地判断资源内容是否相同,从而避免不必要的加载请求。 - 缓存策略的优化对提高网页加载速度和用户体验具有重要意义。 这篇文章通过详细解释缓存的原理、实现方式以及资源标识的对比机制,帮助读者理解HTTP缓存在网页开发和优化中的重要作用。



目录为什么要有http缓存?http缓存之 强制缓存http缓存之 协商缓存(对比缓存)协商缓存中的资源标识

1.当输入网址到加载出页面, 电脑会经过”CPU计算、网络请求、页面渲染”等一系列步骤;

2.“网络请求”是其中最不确定、最耗时的一个环节, 针对这个环节, 我们可以通过”减少网络请求的体积和数量”, 来更快加载出页面, 这是”缓存”存在的原因;

3.通过”缓存”可以实现”减少网络请求的体积和数量”;

1.当第一次访问某个网站, 该网站后端如果认为请求的资源(css、js、图片等)应该被浏览器缓存下来

2.后端会在响应头中添加一个配置:

(单位:秒)

3.当我们再次请求该网站时, 会直接从本地缓存读取资源, 不会向服务器请求缓存的资源

4.如果缓存资源过期了, 会从服务端请求所有资源, 并再次缓存加了配置项的资源

5.Cache-Control 的设置, 由后端开发决定, 不涉及前端, 当然也可以设置成不缓存:

在这里插入图片描述

1.协商缓存是服务端的一种缓存策略;

2.当第一次访问某个网站, 发送请求时, 服务器会返回资源和资源标识. 浏览器会把资源和资源标识都缓存下来;

3.当再次发送请求时, 会带上资源标识, 服务器会把请求中的资源标识, 和服务器中的最新资源标识, 作对比:

如果一致: 服务器只返回, 浏览器会在缓存中直接获取资源(减少请求数据的体积);
如果不一致: 服务器会返回和 及 (体积会相对大一些)

在这里插入图片描述

资源标识有两种, 发送请求时, 都是放在请求头中:

: 资源上一次修改的时间

If-Modified-Since: xxxxx (键名和Last-Modified不一样)

在这里插入图片描述

: 资源对象的唯一字符串

If-None-Match: xxxx(键名和Last-Modified不一样)

在这里插入图片描述

优先级的问题

一般来说会优先使用 ETag , 因为 Last-Modified 的值只精确到 秒级

文件如果每隔一段时间都重复生成,但内容相同。

 Last-Modified 会每次返回资源文件,即便内容相同。

但是Etag可以判断出文件内容相同,就会返回304,使用缓存

在这里插入图片描述

以上就是web面试之http缓存解析的详细内容,更多关于web面试http缓存的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:http协议详解(超详细)微信小程序单选radio及多选checkbox按钮用法示例微信小程序单选radio及多选checkbox按钮用法示例浅谈HTTP 缓存的那些事儿10分钟彻底搞懂Http的强制缓存和协商缓存(小结)

© 版权声明

相关文章