▲框架独有接口(rpcx)
如上图所示,采取紧缩的形式来完成。第一个是Magic number(魔法数字),使用特殊的字节(0x08)来表明Request结尾。第二个是Version(版本号),在做微办事设计的时分,要尽可能做到协定的兼容性。
前面几个字节,好比Message Type、Heartbeat、Oneway、Compress Type、Message Status Type、Serialize Type、Reserred,使用bit做设置,将其紧缩在一同,尽可能增加内存的占用。
接上去,Message ID使用了8个字节的数据。最初是size of rest data,size of serrice Path,size of serrice Method,size of meta,size of payload等数据的处置。
▲HTTP 1.1 vs HTTP pipelining
HTTP1.0的每一个次申请都伴有着一次三次握手的进程,而且是串行的申请,减少了不用要的机能开消。HTTP1.1新增了长链接的通信形式,增加了机能消耗。HTTP Pipelining是把多个HTTP申请放到一个TCP衔接中一一发送,而在发送过程当中不需求等候办事器对前一个申请的响应。
▲HTTP 1.1 vs HTTP 2.0 vs HTTP 3.0
HTTP1.1平安性缺乏和机能不高;HTTP2.0彻底兼容HTTP1.0,是“更平安的HTTP,更快的HTTPS”,头部紧缩,多路复用等技术充沛利用了带宽,升高了提早。HTTP3.0的底层撑持协定QUIC基于UDP完成,又含TCP的特征,完成了又快又牢靠的协定。