场景是:我正在实现一个 RESTful 网络服务,它将充当存储在远程 C 系统上的实体的缓存。 Web 服务的要求之一是,当远程 C 系统离线时,它将使用最后缓存的数据响应 GET 请求,但将其标记为“陈旧”。
我计划将数据标记为过时的方法是返回 200(正常)以外的 HTTP 状态代码。我考虑过使用 503(服务不可用),但我相信它会使一些 C#/Java HTTP 客户端抛出异常,这会间接迫使用户使用异常来控制流。
你能建议一个更合适的状态码吗?或者我应该只返回 200 并在响应正文中添加一个陈旧标志吗?另一种选择是定义一个单独的资源来通知连接状态,并让客户端单独处理。
最佳答案
只需适本地设置 Last-Modified header ,让客户端决定它是否过时。陈旧数据的 Last-Modified 日期将比“正常”日期早。对于新数据,请将 Last-Modified header 保持最新。
关于web-services - 对于可能返回过时数据的 GET 请求,我应该使用什么 HTTP 状态代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7880280/