一直搞不清楚RPC、HTTP、WebService有什么区别,想请教一下各位前辈指导一下
还有Dubbo和Thrift,感觉越来越混乱了……
一直搞不清楚RPC、HTTP、WebService有什么区别,想请教一下各位前辈指导一下
还有Dubbo和Thrift,感觉越来越混乱了……
rpc是远程过程调用,你可以这么理解,就是在另外一台服务器上有一段代码(函数),你可以通过网络远程调用它。用什么协议(http,tcp,udp…),传输什么数据格式(json,xml,二进制…)你都可以自己定义。
http只是一种应用层的协议,和你要写的代码没有关系。你只需要好好的了解它,并且利用好它的特性就好了。
webservice,顾名思义这也是一种提供service的形式,只是它是通过http(web)来提供service而已。你可以基于http来提供你想提供的任意的服务,可以是rpc,也可以是restful。
我的理解是,RPC是一种基于HTTP协议的WebService实现方式,可以参考下鸟哥的Yar:
客户端:
http://php.net/manual/zh/yar-concurrent-client.call.php
服务器端:
http://php.net/manual/zh/yar-server.construct.php
关于 REST 介绍的文章已经很多了,这里只对 RPC 部分做一个介绍:
RPC(远程过程调用)是什么
远程过程调用发展历程
早期的 RPC
XML-RPC,SOAP,WebService
PHPRPC
Hessian
JSON-RPC
Microsoft WCF,WebAPI
ZeroC Ice,Thrift,GRPC
Hprose