Apache的HttpClient和RMI、Hessian、Webservice这些RPC框架,有什么区别?
我是用spring作为核心框架,spring对上述RPC框架有良好的支持。但是,我
看了N篇关于RPC的文章,都只说到上述3种,从没提过HttpClient。这是不是
说明,HttpClient根本不是RPC???
但是,在使用过程中,我发现HttpClient也应该是一种“远程调用机制”吧?
问题1、那它到底跟RPC有什么区别呢??
问题2、什么场景用RPC,什么场景用HttpClient?
拿webservice举例。
客户端程序,可以是PHP,JAVA,Python各种语言编写,它们构建的应用程序通过Webservice与服务程序通信时,有多种连接方式,比如http,socket等。很多情况下考虑跨网络、跨平台,采用穿透性强的http(相对来说效率也低)。
在采用http通信时,需要按照http协议,封装包头,内容,同时接收服务端发回的数据,Java的HttpClient作为Apache提供的工具,可以让你很简单的构建一个请求,发给服务端。另外PHP等其它语言也有类似的工具。
刚表达有些问题,纠正一下:
有多种连接方式和服务端通信,比如http,socket等。对于Webservice来说,采用的是http方式。