二进制协议和文本协议的区别

各位小伙伴们 我一开始不能区分二进制协议和文本协议的区别,是因为我想电脑在传输的过程中,应该传输的就是二进制的数据啊,那文本协议是要传输abcd这类的字符吗?是我理解错了:其实无论是文本协议还是二进制协议,数据从a电脑传到b电脑的过程,传输的数据都是二进制的也就是0和1,那什么是文本协议什么是二进制协议呢

比如我们现在向服务端发送一条消息,内容是个人介绍:Name="xxl",Age=22,Des="贼帅贼帅的"

1.二进制协议的做法是:客户端 告诉 服务端 定制的协议的结构:比如客户端说 我给你发上去结构是,先来字符串(多长)的名字,然后再来int类型的年龄,然后在发字符串(多长),你就按照这个结构解释得到的二进制数据就行

2.文本协议的做法是:客户端不需要和服务端定什么结构,比如json:{Name:"xxl",Age:22,Des:"贼帅贼帅的"},客户端就把这个一串变成二进制发过去(0和1),哪有人就会问,那服务端要怎么知道解析这一串数据显示出来呢
那肯定是json被转化成二进制数据的时候,json自己根据拿到的文本数据做了结构,然后吧这个结构的信息也变成二进制的数据发给服务器,只要服务器那边用json解析就可以了
写到这里,二进制协议和文本协议传输的优缺点就出来了

二进制协议的优点就是:同一个数据转化成,二进制协议的数据量相比文本协议的要小,因为不需要包含 定义数据的结构信息
文本协议的优点就是:不用去定义数据的传输结构,省下了开发时间

说白了二进制协议和文本协议传输的都是二进制数据,只不过二进制协议需要自己制定结构,而文本协议不需要

如有错误,请大佬指正,以免误导祖国的花朵

你可能感兴趣的:(二进制协议和文本协议的区别)