还不会在 SpringBoot 中设置 HTTP 缓存?来造个轮子

本文探讨了在Spring Boot中控制HTTP缓存的方法,包括Spring的ShallowEtagHeaderFilter和自定义实现。文章介绍了HTTP缓存协商机制,如If-None-Match、ETag和Cache-Control头的使用,并分享了一个自造的HTTP缓存控制轮子的GitHub项目和Maven中央库引入方式。同时,文章指出了不同浏览器和代理服务在缓存处理上的差异,提醒在测试时注意这些问题。
摘要由CSDN通过智能技术生成

Spring Boot 控制 HTTP缓存

HTTP协议的缓存策略可以缩短网页请求资源的距离,减少延迟,节省网络流量,并且由于缓存文件可以重复利用,降低网络负荷,加快客户端响应。

如何利用 HTTP缓存 进行一些骚操作呐,这是我最近思考的问题。查看了Spring Boot对HTTP缓存的支持也只有org.springframework.web.filter.ShallowEtagHeaderFilter和plus.wcj.heifer.boot.HeiferBootAutoConfiguration#addResourceHandlers这个两个方式能对HTTP缓存进行骚操作,

  • org.springframework.web.filter.ShallowEtagHeaderFilter只支持静态资源的缓存协商,看了一下注释说明只节省带宽,而不是服务器性能。
  • plus.wcj.heifer.boot.HeiferBootAutoConfiguration#addResourceHandlers可以支持HTTP API,但是不支持RESTful API。

去GitHub寻找一下有没有支持HTTP缓存的轮子,一顿寻找下来颗粒无收,那索性就自己造轮子吧。

缓存协商机制

维护缓存过期网上有很多的文章,这里就不再赘述了,下面列出一些文章

  • https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching
  • https://web.dev/i18n/en/http-cache/

因为HTTP协议的版本问题,就采用了HTTP协议1.0的实现了。

  1. request
  2. If-None-Match
  3. response
  4. Cache-control
  5. <
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值