我目前正在使用ASP MVC API开发SPA。我们最近在API响应中通过HTTP标头添加了客户端缓存,并根据预期的更改频率,使用适当的max-age值。
虽然这有助于提高性能,但我们现在遇到的问题是用户自己进行更改,然后在重新加载页面时使用旧数据获取缓存命中。
为了解决这个问题,我在GET请求中添加了一个版本参数,每次更改时都会递增。
但是,我现在发现RFC 7234 Sec 4.4表示POST,PUT或DELETE请求应该使同一URI的GET请求缓存无效。
鉴于此,我想知道如何更好地设计我的API,因此不需要版本参数,浏览器将自动处理这个问题。
例如:我有
请求2将使1无效,4将使3无效,但4也应使1无效。
这是正确的行为吗?或者应该请求1只返回所有资源的ID集合,我应该为每个ID单独请求3。这似乎没有效果,因为它可以解决100个请求而不是1个。
有一个简单的解决方案吗?