http强缓存在firefox和chrome之间的差异

最近回顾HTTP缓存知识的时候发现了一个问题,设置了强缓存和协商缓存的文件,点击浏览器的刷新按钮的时候在chrome和firefox中的表现不一样。具体表现为chrome走强缓存没有再次发起请求。firefox却在强缓存没有失效的情况下发了请求,返回了304走了协商缓存。

chrome请求截图:

chrome强缓存截图

firefox请求截图:

firefox强缓存截图

上面两种表现截然相反,但是并没有错误。主要原因在于浏览器点击刷新按钮时是否使用强缓存的实现各个浏览器不同。参考盗图如下:

http缓存在各个浏览器中的实现

通过测试发现firefox的http缓存完全符合上图描述,所以不是firefox的强缓存失效,而是在firefox中本来点击刷新按钮就应该忽略强缓存。而chrome刷新按钮使用强缓存是对http缓存的一种优化。所以两者应该都是对的

在firefox没有304的验证在目前来说还是很有用的,现在大部分网页都是工程化的结果,打包出来的文件名称都带上了hash,只要内容变了那么文件名一定会变化,反过来说文件名没有变那么内容一定没有改变,再去验证304就少了很多必要。

关于304的非必要性,详情可查参考1。

参考

[译] 这项浏览器调整使 Facebook 收到的网络请求减少了 60%

彻底理解浏览器缓存机制

http协议请求响应头中参数的疑问??

浏览器缓存机制

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值