【发布时间】:2010-11-21 00:13:01
【问题描述】:
据我了解,使用hypertext-driven RESTful Web 服务,客户端不应该知道任何关于服务器URI 布局的信息,除了几个众所周知的入口点。这应该是为了使服务器能够控制自己的 URI 空间并减少与客户端的耦合。
当服务的客户端成功发送创建新资源的请求时,服务会响应 201 CREATED 并在 Location 标头字段中提供可以访问新资源的 URI。
是否应该允许客户端存储此 URI 以便将来能够直接访问资源?如果可以,持续多长时间?如果 URI 被客户端缓存,这似乎设置了一种情况,即每次服务器更改其 URI 布局时,它需要确保在访问旧 URI 时提供永久重定向。否则客户端中断。几年后,这种重定向系统可能会失控。
与使用 URI 模板的 REST-RPC 混合方法相比,这种情况似乎不会给服务器更多对其 URI 空间的控制。
有很多关于缓存表示的信息,但是在超文本驱动的 RESTful 系统中缓存 URI 呢?
【问题讨论】: