“很难理解”的协议

之前一直理解不清,协议和序列化的关系,现在脑子里清醒了点,记录下现在想的。
文本协议和二进制协议: 例如redis的set a x,采用的就是文本协议,利用空格作为换行符等,便于查看,当然传输过程中也是以二进制字节传输的。 例如http协议是定义空格作为分隔符等。
而二进制协议中间没有空格等字符,字节转换成文本时,无法获取正确的内容,需要用头部字节定义长度,或者双方约定定义长度。

序列化是什么,按照java的说法,是将一个对象转换成字节的行为。例如http请求的序列化就是将文本转换成字节的行为。
那我们常说的json是什么?json你可以理解为是一种序列化方式,将java对象转换成json字符串,转换成字节。你也可以理解为一种协议,利用逗号作为分隔符,然后获取数据。例如按照http的方式,你可以定义{path:/x/y}作为需要访问的路径,而不是http中的url。所以在我的理解中,每一种数据交互格式,都可以作为一种协议。 hessian也是,是一种序列化方式,也可以作为一种协议。

转载于:https://juejin.im/post/5d07a606f265da1bb77669b7

猜你喜欢

转载自blog.csdn.net/weixin_34261739/article/details/93179263