主程的晋升攻略(5):HTTP协议和二进制协议的对比

在上一篇《 主程的晋升攻略(4):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等多种方。
★ 【 云端存储】除了本地笔记本外,还增加了云存储功能,目前使用有道云笔记做为云存储。
★ 【 文档加密】提供了文档加密功能,确保敏感文档的安全性。
★ 【 多个本地笔记本】支持多个本地笔记本,你能够新建本地笔记本、打开、压缩和备份本地笔记本。
★ 【 文章附件】能够为每个文章添加多个附件,并能够在临时目录中打开附件、导出附件。有道云的附件也存储在云端。

你可能感兴趣的:(主程的晋升攻略)