在上一篇《主程的晋升攻略(4):TCP、消息分包和协议设计》中谈了协议设计的一些话题,这里补充聊聊HTTP协议和二进制协议的对比。
HTTP协议是一种文本协议,也是一种Name-Based协议,就从这两方面来说。
文本协议 vs 二进制协议
文本协议的特点:
便于人
易于阅读、理解、调试、构造
解析复杂、冗余多
需要考虑字符转义
二进制协议的特点:
便于机器
Name-Based vs Position-Based
Name-Based协议 的特点:
协议字段都用Name标识
协议字段与位置无关
协议字段可缺省
新增协议字段比较方便
解析复杂
需要考虑字符转义
Position-Based协议的特点:
每个协议字段都有特定的位置
新增协议字段需要做好协议版本管理(protobuf这类就挺好)
解析更高效
相关推荐
Matlab论文:基于Matlab的二进制数字调制系统仿真Matlab论文:基于Matlab的二进制数字调制系统仿真Matlab论文:基于Matlab的二进制数字调制系统仿真Matlab论文:基于Matlab的二进制数字调制系统仿真
C语言 进制转换,有三个案例 : 十进制转二进制:十进制转八进制:十进制转十六进制:等等
到此这篇关于Linux bash:./xxx:无法执行二进制文件报错的文章就介绍到这了,更多相关Linux 无法执行二进制文件 内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!...
信息理论与编码:实验一 绘制二进制熵函数曲线.ppt
由于二进制数在C#中无法直接表示,所以所有二进制数都用一个字符串来表示 例如: 二进制: 1010 表示为 字符串:”1010″ int d = 10; //十进制转二进制字符串 Console.WriteLine(Convert.ToString(d,2)); //...
计算机基本理论:十进制与二进制的转换.pdf
基于linux下:jdk-1.8.0二进制安装包
简单的代码,用于VS2010中将十进制的数转化成二进制的数并输出
Matlab论文:基于Matlab的二进制数字调制系统仿真.pdf
计算机组织与结构:LEC02_二进制与逻辑电路.ppt
主要介绍了C++实现string存取二进制数据的方法,针对STL中string的用法进行了较为详细的分析,需要的朋友可以参考下
真正恐怖的二进制数来了,要将二进制数转换成10进制数。因为二进制数太长,连转换成的10进制数写写都要好长好长呢!要求还特别苛,没有把握你能帮得上忙,反正我也晕了很长时间。 Input: 有1000个二进制数,最长的...
MySQL二进制文件开启及查看详解,就解释了如何分析日志文件 .
实验目的:1、掌握栈的逻辑结构及存储结构;...完成数字十进制到八进制的转换。 输入示例: 请输入需转换的数的个数: 3 请输入需转换的数: 28,58,190 输出示例: 转换结果为: 1、 34 2、 72 3、 276
十进制转二进制: 用2辗转相除至结果为1 将余数和最后的1从下向上倒序写 就是结果 例如302 302/2 = 151 余0 二进制转十进制 从最后一位开始算,依次列为第0、1、2...位 第n位的数(0或1)乘以2的n次方 得到...
在MATLAB下实现二进制树协议算法,供有需要的参考