实现 HTTP 可靠性

发布于 2024-10-16 07:10:44 字数 219 浏览 2 评论 0原文

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

互联网会丢弃旧的请求吗?如果只是旧请求或重复请求,有什么区别吗?

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

My application is a desktop client and a web API application. I am writing both programs.

Does the internet discard old requests? Does it make a difference if it is just an old request or a duplicate request?

Is retrying HTTP requests the only way to ensure almost complete end-to-end reliability over HTTP or is there someway to achieve SOAP-level reliability by just setting arguments or headers without using SOAP? My app is not using SOAP, just Python standard library synchronous requests (multi-threaded).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小嗷兮 2024-10-23 07:10:44

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

话又说回来,HTTP 使用 TCP。 TCP 将允许您等待响应,该响应将告诉您服务器是否已收到所有信息,而 UDP 则为 Fire & UDP。忘记。

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

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

如果

  • 应用程序仅偶尔发送一次请求,
  • 服务器不需要自行发回信息,而仅响应请求,
  • 因此其他端口/协议无法选择防火墙设置

,然后

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

HTTP is usually not the most ideal option for this. You send a single request after which the connection is broken.

Then again, HTTP uses TCP. TCP will allow you to wait for a response that will tell you if the server has received all information as opposed to UDP which is fire & forget.

So the TCP layer is secure enough. HTTP is a request/response protocol. After the response, the connection is closed. There are features for 'keep-alive' connections, but these don't work on all servers. You typically can't rely on that.

If HTTP is the right protocol depends on the situation:

If

  • application only sends a request once in a while
  • server doesn't need to send information back on its own, but only in response to a request
  • others ports/protocols are no option due to firewall settings

then

HTTP is the right way to go. If any of the statements above are false, you might better use a different type of TCP protocol.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文