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

标签 http protocols iot coap

HTTP主要用于浏览网页。 Coap 是用于 IoT 或 WSN 的 HTTP 的简化版本。 COAP虽然是基于UDP的,但是应该有ACK报文来模拟TCP。由于 COAP 比 HTTP 更简单,因此它具有更低的延迟和更少的功耗。

那么,为什么浏览器和网络服务器不使用 COAP 代替 HTTP?鉴于前面的争论,COAP是否有望完全取代HTTP?这只是时间问题吗?是否有仅 HTTP 支持的功能?

最佳答案

If coap is more efficient, can I say that http is useless in the future if we replace them to coap?

行业计划是通过迁移到 HTTP/2 来改进 HTTP,并且 HTTP/2 包括(在其他功能中) header 压缩,这应该会为您带来与 CoAP 类似的好处。

虽然今天大多数网络服务器和一些浏览器已经支持 HTTP/2,但据我所知,没有浏览器或任何服务器支持 CoAP。 TLS 与 DTLS 也是如此。

Are there features coap cannot support but http can?

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

关于http - HTTP 和 COAP 之间的主要区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30424457/

相关文章:

perl - 如何在 Perl 中编写缓存 HTTP 代理?

"already logged in"的 HTTP 状态

php - 迁移到 "Sitemap Protocol 0.9"

python - 如何在Python中使用BAC0 readRange

c# - HttpClient中 "The server returned an invalid or unrecognized response"的含义

android - 将文件从 android 流式传输到 .net http 服务

ios - 将字符串从第二个 View Controller 传递到第一个 Controller

java - 使用 Java 接口(interface)等 Obj-C 协议(protocol)实现类的可插拔性

amazon-web-services - DynamoDB 和 Lambda 的 Amazon IoT 规则问题

active-directory - 将 Windows 10 IoT Core 添加到域