当前位置: 首页 > 面试题库 >

如何检测XHR何时返回缓存的资源?

冉高寒
2023-03-14
问题内容

我想知道是否有一种方法可以检测何时从本地缓存返回响应?可能吗?

解决方案应该是通用的,适用于无条件的请求。在这种情况下,响应代码始终为200
OK,但是XHR返回用于第二个请求的缓存资源(例如,第一个响应包含Expires标头,因此无需在到期日期之前向服务器请求新资源)。


问题答案:

答案是日期标题

  • 如果日期标头在发送日期之前,则响应来自缓存。
  • 如果日期报头在发送请求的日期之后,则响应是新鲜的。

例如

  • 从缓存中:请求是在11:00发送的,响应日期是10:59
  • 无缓存:请求是在11:00发送的,响应日期是11:01


 类似资料:
  • 我想知道是否有一种方法可以检测本地缓存何时返回响应?可能吗? 解决方案应该是通用的,并且适用于无条件的请求。在这种情况下,响应代码总是200 OK,但是XHR为第二个请求返回一个缓存的资源(例如,第一个响应包含Expires头,因此在到期日之前不需要向服务器请求新的资源)。

  • 我搜索了如何在Angular2中缓存XHR,发现使用了< code>share()方法。但是我创建的服务并不像我预期的那样工作。 我错过了什么?(当然,导入所需的类和接口)

  • null 根据密钥在缓存中查找 如果找到,则从缓存返回结果 如果未找到,则返回NULL 我不想在cache-miss的情况下更新缓存,有没有办法使用spring注释来做到这一点

  • 我希望有人能对我一直在研究但没有取得多大进展的一些事情有所帮助。 我想利用 NSURLCache 来返回我在 iOS 应用程序中进行的 API 调用的缓存响应。当设备联机时,如果缓存的响应足够新,我想返回它,否则从远程获取。当设备脱机时,我希望立即返回缓存的响应(如果有),无论其年龄如何。 我正在使用AFNetworking。我正在对我控制的服务器进行API调用。协议是HTTPS。响应头当前为。我

  • 我读到了关于和的相互矛盾的语句。 这个答案说: 使用must-revalidate时,如果服务器不响应重新验证请求,浏览器/代理应该返回504错误。在没有缓存的情况下,它只显示缓存的内容 然而,“只显示缓存的内容”而不进行重新验证与https://datatracker.ietf.org/doc/html/RFC7234#section-5.2.1.4中的内容相矛盾: “no-cache”requ

  • 我有以下简化的处理程序函数(Spring WebFlux和使用静态编程语言的函数API)。然而,我需要一个提示,如何检测空的Flux,然后在Flux为空时使用noContent()进行404。