强制缓存与协商缓存

本文介绍了前端开发中如何利用缓存提升网站性能和用户体验,详细阐述了强制缓存(HTTP 1.1)的工作原理,包括Cache-Control属性的使用。接着讲解了协商缓存的概念,解释了服务器如何通过缓存标识判断资源是否更新。最后,总结了强制缓存和协商缓存的特点及它们在实际应用中的结合使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在前端开发中,合理的使用缓存可以节增强网站性能和用户体验。

1:强制缓存(http1.1)

server端在响应头(response headers)中规定了对资源文件缓存时间,方式。在浏览器第一次访问服务器取到数据之后,在过期时间之内不会再去重复请求。

如图,强制缓存通过 response Headers 中的Cache-Control 响应头来实现返回200。Cache-Control 的属性

1:private:私人的,代表客户端可以缓存,代理服务器不可以缓存。public代表客户端和代理服务器都可以缓存

2:max-age代表可缓存的秒数

3:no-store代表客户端不可以缓存,每次都刷新页面都要请求数据。

4:   no-cache:需要询问服务器是否可以用此缓存资源;

 

二、协商缓存(http1.1)

概念:协商商缓存每次读取数据时都需要跟服务器通信,在第一次请求服务器时,服务器会返回资源,并且某个资源的缓存标识/。当第二次请求资源时,将缓存标识发送给服务器,服务器拿到标识后判断标识是否匹配,如果没匹配就代表资源已经更新,服务器会将新数据和新的缓存标识返回到浏览器;如果缓存标识匹配,表示资源没有更新,并且返回 304 状态码。

三、浏览器缓存过程

1:浏览器第一次加载资源时候,返回200,并下载资源,并缓存资,.第二次以后加载资源时,先比较当前和上一次返回200时的时间差,如果没有超过max-age对定的时间,使用强缓存,从本地缓存读取该文件;如果时间过期,则向服务器重新求情资源。

2:服务器收到请求后,优先根据Etag的值判断被请求的文件有没有做修改,Etag值一致则没有修改,使用协商缓存 ,返回304;如果不一致,返回新的数据带上新的Etag值并返回200状态吗。

四、总结

1:强制缓存和协商缓存都可做到本地缓存的功能;

2:强制缓存返回200,协商缓存返回304;

3:强制缓存直接根据缓存时间是否从缓存中取,协商缓存要询问服务器是否能使用缓存。

4:同时使用两种方式兼容处理。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值