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/