HTTP和COAP之间的主要区别是什么?

时间:2015-05-24 14:12:44

标签: http protocols iot coap

HTTP主要用于查看网页。 Coap是IoT或WSN的HTTP简化版本。虽然COAP基于UDP,但它应该有ACK消息来模拟TCP。由于COAP比HTTP简单,因此它具有更低的延迟并且消耗更少的功率
那么,为什么浏览器和Web服务器不能用COAP替换HTTP?鉴于以前的论点,是否预计COAP将完全取代HTTP?这只是时间问题吗?是否有任何仅受HTTP支持的功能?

4 个答案:

答案 0 :(得分:10)

  

如果coap效率更高,如果我们将它们替换为coap,我可以说http在将来是无用的吗?

行业计划是通过转移到HTTP / 2来改进HTTP,而HTTP / 2包括(其他功能)头压缩,这应该会带来与CoAP类似的好处。

虽然目前大多数Web服务器和某些浏览器都支持HTTP / 2,但AFAIK没有浏览器,也没有任何服务器支持CoAP。 TLS与DTLS也是如此。

  

是否有功能傻瓜不能支持但http可以吗?

正如你所说,HTTP是基于TCP的,而CoAP是基于UDP的。 UDP要求您每隔几秒发送一次UDP ping以保持NAT /防火墙连接打开,而在TCP中通常只需要每15分钟左右一次。 因此,如果您需要保持连接打开(例如,对于推送技术),那么CoAP的效率低于HTTP(和HTTP / 2)。

答案 1 :(得分:4)

CoAP从未打算取代HTTP,而它似乎“仿效”#34; http,它只是因为它遵循REStful范式。 CoAP旨在作为设备的应用层,更具体地说是为Constraint设备设计。

选择REStful设计也是为了通过http促进代理操作(有建议在RFC中这样做)。但同样从未打算取代HTTP。

CoAP的构建充分考虑了少量资源。 CoAP的小标题和不同功能已经到位,以确保约束设备具有在互联网上进行通信的标准。

HTTP和CoAP都有自己的目的。

答案 2 :(得分:1)

CoAP针对资源受限网络以及 IoT M2M 应用程序的典型设备进行了优化。它使用的资源比HTTP少,可以为WSN,IoT和M2M通信提供通信环境。它不是取代HTTP。

HTTP具有不同的应用场景,而CoAP则有不同的应用场景。 HTTP主要用于互联网设备,其中电源和其他约束不是重要问题。 HTTP比CoAP更可靠,因为它使用TCP。

答案 3 :(得分:1)

CoAP和HTTP可用于不同目的。 CoAP已经针对物联网和M2M环境实施,换句话说,使用UDP发送短消息。例如:

  

典型的CoAP交换包括2个消息,即请求和a   响应。相反,HTTP请求首先要求客户端建立TCP   连接,然后终止它。这导致至少9条消息只有一条   要求[11]。请注意,对于大型有效负载,此参数不一定适用。后   TCP的慢启动阶段,它能够一次发送多个数据包并确认   所有这些都只有一个确认。 CoAP的块状转移[8]虽然,   需要对每个块进行确认,并导致更多消息和更高的消息   转移时间。由于我们期望大多数CoAP消息相当短,这一点   不太重要。但是,CoAP的blockwise机制允许受约束   服务器不仅要接收,还要逐块处理大型请求。这个   如果我们使用HTTP和TCP就不可能。   (物联网CLoud服务的可扩展性作者:Martin Lanter)

实际上,Firefox可以使用Copper(CU)插件支持CoAP。 ;)