【问题标题】:ending a passbook program - HTTP response to incoming passbook requests?结束存折程序 - 对传入存折请求的 HTTP 响应?
【发布时间】:2015-06-09 17:57:32
【问题描述】:

我们尝试了一个存折程序,但它从未退出测试版,但有一些通行证一直在打电话回家(并且由于通行证与现有数据不同步而引发错误)。我的计划是对任何传入请求进行 404 处理,但我不确定这是否是处理现有通行证的最佳方式。还有其他想法还是 404 是正确的解决方案?

【问题讨论】:

  • 如果可能,然后发送不带 webServiceURL 的新通行证。否则最好发送 302,不要修改,因为 4xx 或 5xx 响应会导致设备重试。
  • @PassKit 谢谢,我已将其投入生产,并将监控几天。会让你知道结果如何。

标签: passbook


【解决方案1】:

有几个选项:

  • 返回没有空白 Web 服务 url 的更新通行证
  • 返回适当的错误
  • 删除子域的 DNS 条目

更新网络服务网址

可以更新通行证中的任何字段,包括 Web 服务 url。删除 url 将阻止进一步的更新请求。这可能是最有效的,但需要进行一些开发才能返回更新的通行证,并且需要维护直到所有通行证都被“禁用”。

返回适当的错误代码

简单地返回错误代码可能更容易。这可以通过 Web 服务器配置来完成,以防止您的应用程序处理请求(并可能阻止应用程序中的错误)。这将允许您从应用程序中完全删除代码。

Passbook Web Service Reference表示Passbook在收到持续错误时最终会放弃。

如果请求失败(例如,由于网络连接问题),Passbook 会在等待一段时间后重试几次。每次它再次尝试时,它都会等待更长的时间。如果请求继续失败,它最终会放弃。

该文档还指出,标准 HTTP 状态代码应用于响应对 Getting the latest Version of a Pass(和其他)的调用。

回应

  • 如果请求被授权,则返回 HTTP 状态 200 以及传递数据的有效负载。
  • 如果请求未授权,则返回 HTTP 状态 401。
  • 否则,返回适当的标准 HTTP 状态。

讨论

在此端点上支持标准 HTTP 缓存:检查 If-Modified-Since 标头,如果通道未更改,则返回 HTTP 状态代码 304。

听起来存折程序的结束是永久性的,在这种情况下 410 Gone 将是一个合适的错误代码。 (来自RFC 2616)。

410 消失

请求的资源在服务器上不再可用,并且不知道转发地址。预计这种情况将被视为永久性的。具有链接编辑能力的客户端应该在用户批准后删除对 Request-URI 的引用。如果服务器不知道或无法确定条件是否是永久的,则应该使用状态码 404(未找到)。除非另有说明,否则此响应是可缓存的。

410 响应的主要目的是通过通知收件人资源故意不可用以及服务器所有者希望删除指向该资源的远程链接来协助 Web 维护任务。这种事件对于限时促销服务和属于不再在服务器站点工作的个人的资源很常见。没有必要将所有永久不可用的资源标记为“已消失”或将标记保留任何时间 - 这由服务器所有者自行决定。

删除子域 DNS

如果您的 Web 服务 URL 设置在单独的子域(例如 passbook.example.com)上,您可以简单地删除子域的 DNS 条目。请求永远不会到达服务器,Passbook 最终会放弃。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多