HTTP 服务器是 IPC 的好主意吗? [关闭]

Posted

技术标签:

【中文标题】HTTP 服务器是 IPC 的好主意吗? [关闭]【英文标题】:Is an HTTP Server a Good Idea For IPC? [closed] 【发布时间】:2014-01-09 14:54:59 【问题描述】:

我需要实现一个工具,以 POST/GET 机制从正在运行的进程中获取数据。客户端/服务器之间的连接量非常低 - 平均每分钟一个请求。

默认的方式是基于sockets等实现一个简单的服务器。但是,我觉得对于这么简单的事情来说工作量太大了。有很多工具可以用 5 行代码创建一个 HTTP 服务器(例如 Perl Dancer)。与它们的交互既快速又简单。添加新功能非常简单。资源方面,它们非常轻量级。

对于这样的任务(开销方面),HTTP 服务器是不是一个坏主意?是否有类似 Daner/node.js 的简单 IPC RESTful 框架?

谢谢!

【问题讨论】:

如果你不关心网络延迟,那就去吧。 【参考方案1】:

HTTP 基本上是一种无状态协议。你请求一些东西,服务器回复,这就是它的结束。 HTTP 1.1 改变了部分实现,主要是出于性能原因,但它并没有真正改变“客户端发送 - 服务器应答 - 事务完成”模式。这意味着,如果您想实现锁定机制、同步或由服务器启动的事务,您将不得不进行大量编码以使 HTTP 完成它的设计初衷。

这并不意味着没有办法做这些事情,它只是意味着你可能需要做很多编码才能让 HTTP 服务器做你需要的事情。从长远来看,为您的特定需求构建服务器比尝试滥用 HTTP 服务器更容易。

当然,如果 HTTP 的功能足以满足您当前的需求,并且如果您处于快速编码比性能和长期可维护性更重要的环境中,请使用 HTTP 服务器。如果你能在一天之内完成这项工作,并且提前知道需求不会有太大变化,那么花十天时间来获得性能提高 3%、可维护性提高 2% 的解决方案没有多大意义。

【讨论】:

TCP 基本上是无状态协议。这意味着如果你想实现锁定机制、同步或由服务器启动的事务,你将不得不做大量的编码来让 TCP 做它不适合做的事情。猜猜他也不应该使用TCP。那个该死的IP更糟糕!不惜一切代价避免这种情况! TCP 不是无状态协议。不信请看en.wikipedia.org/wiki/…。 它没有requests的概念,那么它如何保持requests之间的状态呢?关键是你把事情吹得不成比例,尤其是当 OP 提到 HTTP 将是 Dancer 下的一个层时,它肯定支持会话。

以上是关于HTTP 服务器是 IPC 的好主意吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将http重定向到https是一个坏主意吗?

我应该优先考虑对我的页面进行语义标记吗?或者语义网是一个永远不会真正落地的好主意?

重定向http到https是一个坏主意?

为程序使用不同的 Python 脚本是个好主意吗? [关闭]

DynamoDB 是 Swift 应用程序的好选择吗? [关闭]

为啥告诉您的服务器将 HTML 解析为 PHP 是一个坏主意? [关闭]