【问题标题】:implementing HTTP reliability实现 HTTP 可靠性
【发布时间】:2011-06-23 10:23:05
【问题描述】:

我的应用程序是一个桌面客户端和一个 Web API 应用程序。我正在编写这两个程序。

互联网会丢弃旧请求吗?如果它只是一个旧的请求或重复的请求,会有什么不同吗?

重试 HTTP 请求是确保 HTTP 上几乎完整的端到端可靠性的唯一方法,还是有某种方法可以通过仅设置参数或标头而不使用 SOAP 来实现 SOAP 级别的可靠性?我的应用没有使用 SOAP,只是 Python 标准库同步请求(多线程)。

【问题讨论】:

    标签: http reliability


    【解决方案1】:

    HTTP 通常不是最理想的选择。您发送一个请求,之后连接断开。

    再一次,HTTP 使用 TCP。 TCP 将允许您等待一个响应,该响应会告诉您服务器是否已收到所有信息,而不是 UDP,后者是即发即弃的。

    所以 TCP 层是足够安全的。 HTTP 是一种请求/响应协议。响应后,连接关闭。有“保持活动”连接的功能,但这些功能不适用于所有服务器。你通常不能依赖它。

    如果 HTTP 是正确的协议取决于具体情况:

    如果

    • 应用程序只偶尔发送一次请求
    • 服务器不需要自己发回信息,而只是为了响应请求
    • 由于防火墙设置,其他端口/协议无法选择

    然后

    HTTP 是正确的方法。如果上述任何陈述不正确,您最好使用不同类型的 TCP 协议。

    【讨论】:

    • 我想说您的所有三点都可能适用。我希望桌面应用程序能够保证可靠性,或者只是说“系统因维护而停机”。客户端不是浏览器,所以我认为让人类决定重试不是一个好的设计。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多