RPC RMI hessian http 区别

本文探讨了Hessian协议的特点及其实现原理,特别是在企业级应用中如何绕过单点登录(SSO)进行服务间调用的问题。文章还对比了Hessian与其他HTTP客户端如HttpClient和RestTemplate的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考 https://www.cnblogs.com/helloworldmybokeyuan/p/11626833.html

RPC remote process call,远程过程调用,基于TCP 实现,跨语言,跨平台,速度快。
    缺点是,必须在客户端和服务端使用 相同的RPC 框架,比如 webservie(cxf)、dubbo
    其中,webservie(cxf) 是比较老的一种协议,基于 xml,现在基本上json取代,所以该框架被抛弃

RMI    Remote Methods Invoke 远程方法调用,基于TCP 实现,仅限于java技术,所以不跨语言,只能跨平台,速度快。
    缺点同RPC,并且仅限定在 java中使用,比如 hessian
    其中,hessian 的使用,需要指定http协议的请求地址,但是底层似乎并不是httpclient或者 resttemplate那样的,模拟浏览器的http臃肿的封装
        hessian似乎可以穿透内网的sso,不需要登录过程就能实现调用。
        对比下,resttemplate或者httpclient这两种完全模拟浏览器的框架,是不能穿透SSO的,必须要经过sso的登录过程。
dubbo
    不太熟悉,以下是个人理解,是一种框架,支持以上各种协议,支持自定义dubbo协议,兼容性比较好。是一个胶水框架。
    并且类似于 注册中心,支持各个微服务的互相注册和统一管理。

hessian 

    仅支持 post方式的http请求,源码内部是 对 httpUrlConnection 的封装和操作。

httpclient,Resttemplate : 两者类似,后者 更加符合 REST 风格。底层都是HttpURLConnection。

【求大神解惑】其中,hessian 的使用,需要指定http协议的请求地址,但是底层似乎并不是httpclient或者 resttemplate那样的,完全模拟浏览器的http臃肿的封装
hessian似乎可以穿透内网的sso,不需要登录过程就能实现调用。
对比下,resttemplate或者httpclient这两种完全模拟浏览器的框架,是不能穿透SSO的,必须要经过sso的登录过程。

这是非常困惑的一点,因为最近想用 resttemplate 取代 hessain,但是当本地测试的时候,rest发送请求到另外一个服务,需要经过内网的sso登录过程,否则就没办法http到那个服务。
目前只能曲线救国,设置Cookie头,来伪装登录,骗过SSO之后,才可以。

线上环境是 配置了 host文件,所以rest请求http不需要经过 sso的登录过程。
那么,本地测试,是不是也是直接配置 host文件,指定 域名的ip地址,之后,就饶过了sso的域名解析和登录服务了呢?

hessian的协议明显不是一般意义上的 http请求,求教,hessian是如何绕过 sso的呢?

 

【回复】

对于以上这个 hessian 穿透内网的疑问,后来咨询了 sso业务的人员,跟我的猜测一样,果然是 sso 放行了 *.hessian 结尾的所有请求,无需登录验证用户名和密码的过程,直接转发 http 到另外的服务。

困惑了好久,看来hessian 底层就是封装了 httpurlConnection 而已,没什么神奇的。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值