课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
缓存是提高网页加载速度的重要应用方法之一,而今天我们就通过案例分析来了解一下,关于缓存的概念与常见类型。希望通过对本文的阅读,大家在以后学习前端编程开发能够更加顺利。
一、什么是缓存?
缓存可以认为是资源的副本。它与本地缓存localStorage等不一样,本地缓存更多的是数据记录,数据量小;而缓存是为了减少请求,多用于文件,存储量大。
前端缓存主要可以分为http缓存和浏览器缓存。
二、什么是http缓存
http缓存其实就是:当客户端向服务器端发送请求的时候,会先访问浏览器缓存,如果浏览器缓存中有请求的资源,那就不向服务器发送请求,而使用缓存的资源。
这里涉及到了浏览器加载一个页面的流程,简单来说就是:
浏览器判断http请求头中的信息,看是否命中强缓存,如果命中就去缓存里找,而不向服务器端发送请求;
如果强缓存命中失败,则会进行协商缓存,也就是浏览器会发送请求到服务器端,服务器会判断浏览器本地缓存是否失效。如果未失效,则服务器会返回304,浏览器继续加载缓存的资源;
如果未命中协商缓存,则服务器会返回完整的请求资源信息给浏览器,浏览器加载新资源,并且更新缓存。
1、什么是强缓存?
强缓存是利用http请求头的Cache-Control和expires两个字段控制的,表示资源过期的时间。
命中强缓存时,浏览器是不会向服务端发送请求的。然后返回的状态码是200,这种速度很快,性能也很好。但是有些时候我们可能改了一些样式,刷新发现页面一点变化都没有,就是因为强缓存导致的,这时我们可以按Ctrl+F5进行强制刷新。
2、什么是协商缓存?
浏览器发送请求给服务器,服务器会根据http请求头的Last-Modify/If-Modify-Since或Etag/If-None-Match判断对比资源是否更新了,这可以当作是浏览器和服务器的协商过程,如果服务器的资源较上次没有修改,http状态码返回304,浏览器从缓存中加载资源。如果修改了,则返回状态码200,并且将更新后的资源以及缓存信息一起返回。
三、浏览器缓存
浏览器缓存包括了cookie,WebStorage(LocalStorage,SessionStorage)等。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。