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

时间:2014-03-06 21:24:53

标签: rest caching hypermedia

假设你有一个完全由超媒体驱动的API。消费者必须通过以下超媒体来导航三个资源,直到他们可以获得他们想要的资源。有没有理由客户端暂时无法缓存这些步骤并直接转到他们想要的资源?

我知道REST的目标是将客户端和服务器分离,但如果您在幕后有5个Web请求,那么用户体验可能会很难等待所有这些发生。

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

1 个答案:

答案 0 :(得分:0)

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

  

添加缓存约束的优势在于,它们有可能通过减少一系列交互的平均延迟来部分或完全消除某些交互,从而提高效率,可伸缩性和用户感知性能。然而,权衡的是,如果缓存中的陈旧数据与请求已直接发送到服务器时获得的数据显着不同,缓存可能会降低可靠性。

这是一种折衷方案,但是缓存时间短的事件将大大提高性能。 理想情况下,超媒体API将提供缓存指南。这可以通过HTML缓存与浏览器和Expires和Cache-Control标头一起使用的方式完成。

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

相关问题