似乎早期由于网络速度慢(拨号上网),存在更多二进制协议,现在我看到所有东西都被HTTP和SOAP/REST/XML替代了。
为什么会这样呢?
二进制协议是否真的已经消失了,还是只是不那么流行了?它们为什么会消失或变得不那么流行?
似乎早期由于网络速度慢(拨号上网),存在更多二进制协议,现在我看到所有东西都被HTTP和SOAP/REST/XML替代了。
为什么会这样呢?
二进制协议是否真的已经消失了,还是只是不那么流行了?它们为什么会消失或变得不那么流行?
二进制协议将在需要效率的地方继续存在。它们主要存在于较低层,硬件实现比软件实现更为常见的地方。速度不是唯一的因素 - 实现的简单性也很重要。让芯片处理二进制数据消息比解析文本消息要容易得多。
取决于应用程序... 我认为在实时环境中(FireWire、USB、现场总线...)始终会需要二进制协议。
Eric J的回答已经说得很清楚了,但是这里还有一些更多的思考和事实。请注意,以下内容不涉及媒体协议(视频、图像)。有些内容可能对您来说很清楚,但我每天都听到一些谣言,所以在这里给您解释一下...
二进制协议和文本协议在表达能力上没有区别。您可以使用相同的可靠性传输相同的信息。
对于每个最佳的二进制协议,您都可以设计一个最佳的文本协议,它只需要大约多15%的空间,并且您可以在键盘上输入该协议。
在实践中(我每天看到的实际协议),由于许多二进制协议的静态特性,差异甚至更小。
总之:二进制协议在理论上更节省空间和计算资源,但实际上差异往往不如你想象的大,而且这种交易通常不值得。我正在从事物联网领域的工作,几乎每天都要处理定制、设计不良的二进制协议,这些协议非常难以排除故障,实现起来很烦人,而且并没有更节省空间。如果你不需要绝对调整电池的最后一毫安和计算微控制器周期(或传输媒体),请三思而行。