gpt4 book ai didi

REST - 客户端可以缓存资源链接吗?

转载 作者:行者123 更新时间:2023-12-02 10:29:55 24 4
gpt4 key购买 nike

假设您有一个完全超媒体驱动的 API。消费者必须通过以下超媒体浏览三种资源,直到他们能够找到他们想要的资源。客户端是否有任何原因无法暂时缓存这些步骤并直接访问他们想要的资源?

我知道 REST 的目标是解耦客户端和服务器,但如果您有 5 个 Web 请求在幕后进行,那么等待这一切发生的用户体验可能会很差。

我能想到的最糟糕的情况是缓存的 URL 被更改。因此客户端将再次从入口点开始并缓存步骤。

最佳答案

客户端缓存对于许多性能良好的超媒体客户端来说非常重要。以下是直接来自 Fielding's dissertation 的一些更具体的指导:

The advantage of adding cache constraints is that they have the potential to partially or completely eliminate some interactions, improving efficiency, scalability, and user-perceived performance by reducing the average latency of a series of interactions. The trade-off, however, is that a cache can decrease reliability if stale data within the cache differs significantly from the data that would have been obtained had the request been sent directly to the server.

这是一种权衡,但缓存的时间范围很短将大大提高性能。 理想情况下,超媒体 API 将提供缓存指导。这可以通过 HTML 缓存与浏览器以及 Expires 和 Cache-Control header 一起工作的方式来完成。

此外,如果资源已移动,那么 API 应通过正确的 301 Moved Permanently 响应通知您。

关于REST - 客户端可以缓存资源链接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22236329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com