REST——客户端能否缓存资源链接?

4
假设您拥有一个完全以超媒体驱动的API。 消费者必须通过跟随超链接导航三个资源,才能到达他们想要的资源。 客户端是否可以缓存这些步骤并暂时直接访问所需的资源?我知道REST的目标是解耦客户端和服务器,但如果在幕后进行了5个Web请求,用户体验可能会很差,因为需要等待所有这些请求完成。最糟糕的情况是缓存的URL被更改。 因此,客户端将从入口点重新开始并缓存步骤。
1个回答

0

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

添加缓存约束的优点在于它们有可能部分或完全消除某些交互,通过减少一系列交互的平均延迟,提高效率、可扩展性和用户感知性能。然而,权衡之处在于,如果缓存中的陈旧数据与直接向服务器发送请求时获取的数据差异显著,则缓存可能会降低可靠性。

虽然存在权衡,但即使是短时间的缓存也将极大地提高性能。理想情况下,超媒体API将提供缓存指导。这可以通过与浏览器和Expires和Cache-Control头文件一样的方式来完成HTML缓存。

此外,如果资源已移动,则API应使用正确的301永久移动响应通知您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接