持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第29天,点击查看活动详情
前言
大家好呀,我是L同学。在上篇文章html知识点总结(二)中,我们学习了html相关知识点,包括img元素、a元素等相关知识点。今天,在这篇文章中,我们将学习等http缓存控制相关知识点,首先我们来学习为什么需要缓存。
为什么需要缓存
为什么需要缓存呢?缓存的优点主要包括三点,具体在于:
第一点,加快了浏览器加载网页的速度,优化了用户体验,让用户可以更快速的打开我们的网页;
第二点,减少了对服务器的访问次数,减轻了服务器的负担;
第三点,节省了带宽(也就是节省钱,因为很多带宽服务其实是按流量来计费的,相同地对用户也可以省4G、5G流量...也省钱了)
缓存有优点,当然也有相应的缺点。它的缺点就在于如果资源一直被缓存了,那么当资源发生更改时,用户就无法获取最新的信息了!所以缓存虽好,可不能乱用哦。
浏览器缓存也包含很多内容:HTTP缓存、storage缓存(cookie、localstorage、sessionStorage)等等。这里我们只讨论HTTP缓存相关内容。
HTTP缓存分为强缓存和协商缓存。浏览器缓存分为强缓存和协商缓存,浏览器加载一个页面的简单流程如下:
-
浏览器先根据这个资源的http头信息,来判断是否命中强缓存。如果命中则直接加载在缓存中的资源,并不会将请求发送到服务器(强缓存)。
-
如果未命中强缓存,则浏览器会将资源加载请求发送到服务器。服务器来判断浏览器本地缓存是否失效。若可以使用,则服务器并不会返回资源信息,浏览器继续从缓存加载资源(协商缓存)。
-
如果未命中协商缓存,则服务器会将完整资源返回给浏览器,浏览器加载新资源,并更新缓存(新的请求)。