【问题标题】:Do modern browsers cache ajax responses?现代浏览器是否缓存 ajax 响应?
【发布时间】:2017-06-13 01:26:18
【问题描述】:

我最近发现我们在所有 WebApi 响应中都使用了Cache-Control:no-cache。我知道在浏览器缓存确实变化很大并且您永远不知道浏览器是否可以缓存您的 json 之前,这很重要。

据我所知,没有现代浏览器缓存 ajax 响应,因此不需要此标头。但我真的很想仔细检查并在这里询问有关行为,因为找不到有关该主题的任何最新帖子。

所以问题真的是:我们还需要为来自 SPA 应用程序的 Web api 调用设置 Cache-Control:no-cache,如果是,那么哪些浏览器会进行缓存?

【问题讨论】:

  • 我不认为这是重复的,因为另一个问题实际上已经有 8 年了,而且从那以后发生了很多变化,这就是为什么我在标题中加入了“现代”。我在这里发帖之前已经阅读了那篇文章。

标签: ajax asp.net-web-api single-page-application browser-cache cache-control


【解决方案1】:

根据HTTP/1.1 specification浏览器HTTP缓存键是请求HTTP方法和URI的组合。浏览器不考虑请求是如何发出的:

主缓存键由请求方法和目标组成 URI。然而,由于当今常用的 HTTP 缓存通常是 仅限于缓存对 GET 的响应,许多缓存只是拒绝 其他方法并仅使用 URI 作为主缓存键。

因此,如果您执行的请求是可缓存的,您仍然需要该标头值。查看HTTP Caching MDN pageWhich webbrowsers use http/1.1 by default? question 了解更多详情。

您可能还需要专门为 IE 添加另一个标头。查看Make IE to cache resources but always revalidate问题了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-16
    • 2013-06-10
    • 1970-01-01
    • 2014-03-08
    • 2018-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多