理解TCP/IP,SOCKET,HTTP,FTP,RMI,RPC,webservice等的含义和关系

TCP/IP:网络宽带,传输数据的基础协议,所有得数据要在网络上传输都是基于TCP/IP协议(或UDP),才能送达到指定的目的地(IP,服务器硬件地址)。

SOCKET:SOCKET只是面对编程人员的一个基于TCP/IP协议的编程接口,通过SOCKET,编程人员可以控制如何让数据在客户端和服务端进行业务逻辑交互。

HTTP: HTTP是应用层的协议,和TCP/IP协议没有可比性,HTTP协议定义了在应用层怎么打包数据,方便在网络不同节点上的不同应用之间进行通讯。常见的浏览器访问网站,以及编程中使用的HttpClient框架

FTP:FTP也是应用层协议,比HTTP更复杂,常用来传输文件,常见得文件服务器和客户端之间的文件上传。

RMI:(即Remote Method Invoke 远程方法调用)。RMI是java独有得基于不同网络节点上的java虚拟机之间的java对象之间的相互调用,RMI使用TCP/IP协议传输java对象,用RMI传输数据需要将对象实例化,因为不同java虚拟机之间java对象无法共享,所以采用序列化来进行对象之间的数据交互。RMI是面向对象方式的javaRPC。

RPC:RPC成为远程过程调用协议,基于http协议,使用C/S方式,发送请求到服务器,等待服务器返回结果。RPC跨语言,跨平台,通用性强,

常见的RPC框架有Hessian,Thrift,Hetty,阿里的Duobbo等。

 webservice:是底层基于http协议,使用xml作为数据载体的通用接口服务,跨语言,通用性强,使用SOAP协议,使用WSDL来描述接口服务。

 

原文地址:https://www.cnblogs.com/xiaotang5051729/p/13066161.html