强缓存和协商缓存

强缓存

浏览器向服务器发送请求的时候,服务器会返回资源,当服务器觉得这个资源应该被缓存的时候(比如css,js文件),就会在响应头中设置Cache-Control和响应时常max-age,这样浏览器会在本地缓存中存下对应资源的文件,如果下次再去请求相同的网站的时候,浏览器就会检查max-age有没有过期,如果没有过期的话,就不会向服务器发送请求,而是直接从缓存中拿资源,这样一来我们的浏览器加载速度就会快很多,因为我们会省去向服务器发送http请求的过程,http请求是不稳定的,如果你网络不好的时候,返回一个请求可能是几十毫秒,甚至是一秒,都有可能。
如果请求的资源过期的话,浏览器还会请求资源,在进行缓存
如果不需要缓存的话,需要设置no-cache就不会缓存
Cache-Control的缓存与否是由服务端完成的,不需要前端完成

协商缓存

协商缓存是浏览器向服务器发送一个请求,浏览器判断这个请求是否可以被缓存,如果可以,返回请求资源和资源标识,
将资源缓存在本地缓存中,当浏览器再次发送请求的时候,就会携带这个资源标识,服务器通过标识判断是否为最新数据,如果是最新数据,返回状态码304,告诉浏览器直接从本地缓存中读取数据,这样一来,服务器只是返回了304状态码,没有资源文件,这次请求就是很小的,
如果不是最新数据,服务器会返回200状态码,和最新的资源和资源标识,在存储在本地缓存中,这样我们的请求体积就会相对大一点,不像我们从缓存中拿数据,从本地中拿数据,我们的网页会加载的较快,用户体验也会好

总结

强制缓存优先于协商缓存进行,若强制缓存(Expires和Cache-Control)生效则直接使用缓存,若不生效则进行协商缓存协商缓存由服务器决定是否使用缓存,若协商缓存失效,那么代表该请求的缓存失效,重新获取请求结果,再存入浏览器缓存中;生效则返回304,继续使用缓存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值