HTTP服务器是否适用于IPC?

4
我需要实现一个工具,该工具从运行中的进程中获取数据,使用POST / GET机制。客户端/服务器之间的连接数量相当低-平均每分钟一个请求。
默认方式是基于套接字等实现简单服务器。然而,我认为这对于如此简单的事情来说太过繁琐。有很多工具可以创建仅需5行代码的HTTP服务器(例如Perl Dancer)。与它们的接口快速且容易。添加新功能就像它所得到的一样容易。在资源方面,它们相当轻量级。
对于这样的任务,HTTP服务器是否是一个不好的选择(关于开销)?是否有一个类似于Daner / node.js的简单RESTful框架用于IPC?
谢谢!

2
如果你不在意网络延迟,就去做吧。 - mpapec
1个回答

3
HTTP基本上是一种无状态协议。您请求某些内容,服务器回复,这就结束了。HTTP 1.1已经更改了部分实现,主要是出于性能原因,但它并没有真正改变“客户端发送-服务器回答-交易完成”的模式。这意味着,如果您想实现锁定机制、同步或由服务器启动的事务,则必须编写大量代码,使HTTP做它原本不设计的事情。
这并不意味着没有办法做这些事情,只是意味着您可能需要编写大量代码以使HTTP服务器满足您的需求。从长远来看,为您的特定需求构建一个服务器比试图滥用HTTP服务器更容易。
当然,如果HTTP所能做的对您目前的需求足够,并且如果您处于快速编码比性能和长期可维护性更重要的环境中,请使用HTTP服务器。如果您可以在一天内完成工作,并且预先知道需求不会发生太大变化,那么花费十天时间来获得性能提高3%和可维护性提高2%的解决方案就没有太多意义。

TCP基本上是一种无状态协议。这意味着如果你想实现锁定机制、同步或服务器启动的事务,你将不得不编写大量代码来让TCP做它原本不设计的事情。猜测他也不应该使用TCP。那个该死的IP更糟糕!无论如何都要避免使用它! - ikegami
3
TCP不是一种无状态协议。如果你不相信,请参阅http://en.wikipedia.org/wiki/Stateless_protocol#Stacking_of_stateless_and_stateful_protocol_layers。 - Guntram Blohm
1
它没有请求的概念,那么它如何在请求之间保持状态呢?重点是你夸大了事情,尤其是当OP提到HTTP将成为Dancer的一层时,而Dancer肯定支持会话。 - ikegami

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接