我最近发现我们在所有WebApi响应中使用Cache-Control:no-cache
。我知道在浏览器缓存之前确实存在很大的差异而你从来不知道浏览器是否可以缓存你的json,所以这很重要。
据我记忆,没有现代浏览器缓存ajax响应,因此不需要此标头。但我真的想仔细检查并在这里问一下这个行为,因为找不到关于该主题的最新帖子。
所以真正的问题是:我们是否还需要为来自SPA应用程序的web api调用设置Cache-Control:no-cache
,如果是,那么哪些浏览器会进行缓存?
答案 0 :(得分:3)
根据HTTP/1.1 specification浏览器,HTTP缓存键是请求HTTP方法和URI的组合。浏览器没有考虑如何提出请求:
主缓存密钥由请求方法和目标组成 URI。但是,由于目前常用的HTTP缓存通常是 限于缓存对GET的响应,许多缓存只是下降 其他方法,只使用URI作为主缓存密钥。
因此,如果您执行的请求是可缓存的,则仍需要该标头值。查看HTTP Caching MDN page和Which webbrowsers use http/1.1 by default? question了解详情。
此外,您可能需要专门为IE添加另一个标头。查看Make IE to cache resources but always revalidate问题以获取更多信息。