参考内容 既然有 HTTP 请求,为什么还要用 RPC 调用? - 知乎
http介绍
说到http 其实开发过接口的都很少熟悉,目前最流行的是HTTPS,其实无论是OSI的5层七层还是TCP/IP五层模型,http都是属于上层封装偏向于应用的部分,主要是浏览器和一些客户端通信用的协议,通常请求会有特定请求头而且是长连接,占用服务器的连接资源,
通常情况下浏览器会存储cookie 在服务端会存储session来确定连接的情况,如果是restful风格的http请求是无状态的,服务器是不知道这次请求的数据。
下面是附带的7层协议
第一层 物理层 网卡 网口
第二层 数据链路层 网关交换器
第三层 网络层
第四层 传输层 tcp,udp
第五层 会话层 dns.smtp
第六层表示层 telnet,snmp
第七层 应用层 http,rtsp,imap
上面是我大脑能列出来的第一反应
对于HTTPS是结合了http+SSL/TLS的混合,传统的http是明文传输的在互联网中网关和每个转发节点都能知道里面的内容,但是如果在http上包裹一层ssl那么传输者只知道传给谁但是具体的内容是不清楚的,ssl的非对称加密的,网站的拥有方需要去申请免费提供的let entry ,发送的证书是分别为公钥和私钥,他们拿私钥加密,我们客户端拿到数据用公钥解析内容,同时需要注意
具体的内容在网上搜索具体的介绍
RPC介绍
为什么会需要rpc,主要是服务的解耦,当整个系统越来越复杂后处于维护和迭代的需要,通常会将服务组件拆分,单独提供,譬如单独的订单服务,查询服务,认证服务,搜索服务等,但是当一个请求需要涉及到几个服务的功能的时候就会遇到 A服务 需要B服务,C服务的数据或者行动后A服务才能执行后续内容。
此时需要RPC来调用别人的服务服务,这个过程同时还设计到分布式事务,我们目前只考虑数据的使用,但是在调用过程中由于不同语言,和调用方能是接受的语法等限制通常需要跨平台的库来实现比较有名的是 浅谈 RPC | Apache Dubbo,gRPC 等来实现。
对应目前