主程序员的练成:HTTP协议和二进制协议的对比

在上一篇《主程序员的练成:TCP、消息分包和协议设计》中谈了协议设计的一些话题,这里补充聊聊HTTP协议和二进制协议的对比。

HTTP协议是一种文本协议,也是一种Name-Based协议,就从这两方面来说。

文本协议 vs 二进制协议

文本协议的特点:
    便于人
    易于阅读、理解、调试、构造
    解析复杂、冗余多
    需要考虑字符转义

二进制协议的特点:
    便于机器

Name-Based vs Position-Based

Name-Based协议的特点:
    协议字段都用Name标识
    协议字段与位置无关
    协议字段可缺省
    新增协议字段比较方便
    解析复杂
    需要考虑字符转义

Position-Based协议的特点:
    每个协议字段都有特定的位置
    新增协议字段需要做好协议版本管理(protobuf这类就挺好)
    解析更高效



-------- 分割线 ---------
1.主程序员的练成:引言
2.主程序员的练成:技术篇概要
3.主程序员的练成:IP、DNS和CDN
4.主程序员的练成:TCP、消息分包和协议设计
6.主程序员的练成:CGI和FastCGI


推荐wecode程序员云笔记──为程序员而生的开源简洁高效的云笔记软件,使用有道云做云端存储。
★ 【语法高亮】目前支持 C/C++、C#、Pascal、Java、VB.Net、XML、HTML、Python、SQL等多种方。
★ 【云端存储】除了本地笔记本外,还增加了云存储功能,目前使用有道云笔记做为云存储。
★ 【文档加密】提供了文档加密功能,确保敏感文档的安全性。
★ 【多个本地笔记本】支持多个本地笔记本,你能够新建本地笔记本、打开、压缩和备份本地笔记本。
★ 【文章附件】能够为每个文章添加多个附件,并能够在临时目录中打开附件、导出附件。有道云的附件也存储在云端。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。