firefox浏览器查看请求头、响应头_HTTP请求头和响应头中的cachecontrol

9ed384ef0f7ec9f0abd5f6065a738b1b.png

都知道http的请求头和响应头都可以设置cache-control属性,它的作用是用来设置静态资源缓存的。难道他们就没有什么不一样的地方么?反正一开始我是不明白,在网上也硬是没找到答案,于是这篇文章就出来了。。。

鲁迅说:世界本无路,走得人多了,老师就开始点名了。。。(好吧,这是别人说的)

鲁迅说:凡事须得研究,才能明白(这才是鲁迅本讯说的)

作为程序猿没有什么比代码来的更可爱,没有数据支撑的理论可能都是耍流氓。。。

别扯那没用的上代码就是。。。好吧。。。

客户端代码:

c1029188a77b9da1a91b10c6591019ad.png

服务端代码:

d75f898382497eff677f7c4cd1f93b66.png

你看的没错,代码虽少,可不要贪码哟。客户端为了验证请求头cache-control的作用,所以采用了ajax的方式来请求js。服务端主要是用来设置静态资源的缓存时间的。我们所说的缓存都是建立在get请求方式之上,其他方式设置的缓存暂时没听说过

接下来就是见证奇迹的时刻:

场景一:当客户端、服务端都不设置cache-control的时候看看是什么情况

0520508ed25984cfd503ee132e757b6e.png

eb37c5da4509c64f6718343bdaf2ad16.png

发现默认情况下是不会走缓存的

场景二:当服务端设置cache-control,客户端没有设置的时候看看是什么情况

d321e854aff8b64cbab24563c2037ada.png

c2e4f6c654111e91f3d50365c98656c8.png

55198aae6e45eaf40f7bcd52b79554c3.png

发现缓存由服务端开启

场景三:当客户端设置cache-control,服务器端没有设置的时候看看是什么情况

9ba8ca420f71532e51d01e7e69f11625.png

575953c4295b05555487f81d72ae28d2.png

c5897221adf703b16f741219ce1262d1.png

0f83027d3c5c8c0ee7505685d692644f.png

发现当客户端开启cache-control是不会生效的,必须是由服务端开启

场景四:当客户端和服务端都设置了cache-control的时候看看是什么情况

00e75272c08b63edb0eac7cc4599e37c.png

c36f4c0c42fb56796ce9e393d0c97fda.png

023d9a7f06b0648e75f8e21be728ea06.png

d4dd22590e0060cf2a1c0dfcf211b316.png

发现30秒后缓存就失效了,而不是客户端设置的60秒,故缓存的失效时间是由服务端设置决定的

场景五:当客户端设置不需要缓存,而服务端设置了缓存的时候看看什么情况

63892aa7db0b3e554b48680fd7a260d0.png

c36f4c0c42fb56796ce9e393d0c97fda.png

28216af9dabff1d64d1b54c571f614ea.png

发现资源不再走强缓存了,而是直接向服务器发送了请求,故请求头中设置的cache-control是可以不走强缓存的,这和按F5按键是一样的效果

结论:

1、只有服务端才能开启缓存,默认是不会走缓存的

2、走了强缓存就不会再向服务端发送请求了

3、客户端的请求头中只有设置了cache-control为:'no-store' | 'no-cache' | 'max-age=0'才会生效(也就是客户端不想走强缓存的时候生效),除非后端对这个字段做特殊处理

如果有对强缓存和协商缓存不太清楚的同学可以了解一下之前写过的一遍文章一文读懂http缓存(超详细)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值