1、网路层次的划分

1-1 OSI七层网络模型 与 TCP/IP五层协议

1.1.1Rpc和Http的区别
相同点:底层通讯都是基于socket,都可以实现远程调用,都可以实现服务调用服务
不同点:
| 是什么 | 优缺点 | 框架 | 典型 | |
|---|---|---|---|---|
| RPC | 远程过程调用 | 速度快,效率高 | webservie(cxf)、dubbo(阿里巴巴开源的基于 Java 的高性能 RPC)、(RMI远程方法调用)Hessian | 典型:早期的webservice,现在热门的dubbo |
| Http | 一种网络传输协议 | 优势:通用性强; 缺点是消息封装臃肿 | HttpClient | 现在热门的Rest风格 |
RPC:Remote Produce Call远程过程调用;
自定义数据格式,基于原生TCP通信,速度快,效率高。
典型:早期的webservice,现在热门的dubbo
框架:webservie(cxf)、dubbo(阿里巴巴开源的基于 Java 的高性能 RPC)、(RMI远程方法调用)Hessian
跨操作系统在同一编程语言内使用
Http:是一种网络传输协议,基于TCP,规定了数据传输的格式。现在客户端浏览器与服务端通信基本都是采用Http协议。也可以用来进行远程服务调用。
优势:通用性强
缺点是消息封装臃肿。
典型:现在热门的Rest风格
http的实现技术:HttpClient
跨系统跨编程语言的远程调用框架
总结:对比RPC和http的区别
1 RPC要求服务提供方和服务调用方都需要使用相同的技术,要么都hessian,要么都dubbo
而http无需关注语言的实现,只需要遵循rest规范
2 RPC的开发要求较多,像Hessian框架还需要服务器提供完整的接口代码(包名.类名.方法名必须完全一致),否则客户端无法运行
3 Hessian只支持POST请求
4 Hessian只支持JAVA语言