聊聊RPC调用和HTTP调用的区别

前言

很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive!

本文简单地介绍一下两种形式的C/S架构,先说一下他们最本质的区别,就是RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,我们都知道HTTP协议是在传输层协议TCP之上的,所以效率来看的话,RPC当然是要更胜一筹啦!下面来具体说一说RPC服务和HTTP服务。

OSI网络七层模型

在说RPC和HTTP的区别之前,我觉的有必要了解一下OSI的七层网络结构模型(虽然实际应用中基本上都是五层),它可以分为以下几层:(从上到下)

  • 第一层:应用层。定义了用于在网络中进行通信和传输数据的接口;

  • 第二层:表示层。定义不同的系统中数据的传输格式,编码和解码规范等;

  • 第三层:会话层。管理用户的会话,控制用户间逻辑连接的建立和中断;

  • 第四层:传输层。管理着网络中的端到端的数据传输;

  • 第五层:网络层。定义网络设备间如何传输数据;

  • 第六层:链路层。将上面的网络层的数据包封装成数据帧,便于物理层传输;

  • 第七层:物理层。这一层主要就是传输这些二进制数据。

实际应用过程中

你可能感兴趣的:(http,restful,java,程序人生,编程语言)