校招后端面经--传输协议
WXG使用的传输协议是protobuf,这篇作为扩展了解一下,是给面试加分的一个环节。
1. 文本文件和二进制文件
根据该博客进行整理
- 文件实际上包括了两个部分,控制信息和内容信息。纯文本文件仅仅是没有控制格式信息罢了,实际文本文件就是一种特殊的二进制文件(所有的数据类型都是char)
- 二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放,也就是说存放的是数据的原形式
- 文本文件是把数据的以终端形式输出到磁盘上存放,也就是说存放的是数据的终端形式。(终端形式也就是每一个都是字符)
- 字符数据本身在内存中就经过了编码,所以无论是二进制还是文本形式都是一样的,而对于非字符数据来说,例如int i= 10;如果用二进制来进行存储的话为1010,但是如果需要用文本形式来进行存储的话就必须进行格式化编码(对1和0分别编码,即形式为’'1和’0’分别对应的码值)
- 文本文件编码基于字符定长,译码容易些;二进制文件编码是变长的,所以它灵活,存储利用率要高些,译码难一些
2. 文本协议和二进制协议
-
文本协议如HTTP协议,redis协议,都是以字符的形式传数据:
{ "code":10, "msg":"succeed", "info": {