作者:起飞吧和谐号况 | 来源:互联网 | 2022-12-25 17:50
对于计算机/网络,所有数据均以0和1传输。如果是这样,我不明白是什么使二进制协议与文本协议有所不同。我确实了解,当二进制协议上可能发生其他传输时,因为这些字节是不可读的。但是在REST Web服务调用期间,二进制传输比JSON快,因为我们仅传输文本。如果有任何链接请深入了解。谢谢!
1> John Fricker..:
您可以在ProtoBuf文档(https://developers.google.com/protocol-buffers/docs/overview)中找到关于二进制协议相对于文本协议(例如REST或XML)的优势的详尽解释。二进制格式(https://developers.google.com/protocol-buffers/docs/encoding)。
冒着过度简化的风险,二进制格式通过牺牲人类可读性允许对数据进行简洁的描述。“简洁”是指小几个数量级。
这是可能的,因为TCP和UDP不在乎有效负载。有效负载仅对应用程序重要,因此应用程序可以定义特定目的的格式来描述数据。因此,如果以这种方式定义,则有效负载中的单个字节可以具有256个可解释的含义。
通用的人类可读格式(如REST和XML)需要由通用解析器解释。因此,它们的格式添加了字节以区分数据元素,值标签和一般的人类可读性。这些额外的字节将是扩展的,并且很容易超过数据本身的大小。
在许多情况下,例如在简单的客户端/服务器应用程序中,人类可读性是较好的牺牲。但是对于高性能,大规模扩展的基础架构(例如Google的搜索索引),开销将成为性能的巨大损失,并且二进制格式是必需的。