web-services - 对于可能返回过时数据的 GET 请求,我应该使用什么 HTTP 状态代

场景是:我正在实现一个 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/

相关文章:

assembly - 如何正确结束 assembly ?

spring - 通过 spring 注释进行的交易 - 只读与否?

architecture - Java中的模块、插件和组件有什么区别?

php - 如何在 codeigniter form_validation 类中允许空值或数值?

php - php脚本可以打印回他们的文件名吗?

geodjango - Django-profiles,带有地理字段的用户配置文件?

asp.net-mvc - 在 Razor 模板引擎上打印可空类型

sql-server - 检查是否启用了复制

perl - 这个 zip 命令是如何在 perl 中使用的?

MongoDB - 添加到集合并递增