当前位置:首页 > 科技  > 软件

从RPC到HTTP:网络通信协议的演变

来源: 责编: 时间:2024-04-26 17:34:25 265观看
导读前言随着信息技术的飞速发展,网络通信协议在构建分布式系统和应用程序中发挥着至关重要的作用。从早期的远程过程调用(RPC)到现代的超文本传输协议(HTTP),网络通信协议经历了显著的演变。在刚开始C/S架构流行时,对于C/S架构

前言

随着信息技术的飞速发展,网络通信协议在构建分布式系统和应用程序中发挥着至关重要的作用。从早期的远程过程调用(RPC)到现代的超文本传输协议(HTTP),网络通信协议经历了显著的演变。ijU28资讯网——每日最新资讯28at.com

在刚开始C/S架构流行时,对于C/S架构下的软件,如聊天软件、办公软件等,它们只需要与自己公司的服务器通信,所以可以使用自家定制的RPC协议进行远程调用即可。但随着万维网与B/S架构的出现,浏览器产生了,而浏览器需要访问来自不同公司的很多网站,这不能通过RPC进行访问,所以需要一个统一的标准来与这些网站服务器通信。ijU28资讯网——每日最新资讯28at.com

这时HTTP协议发挥作用的地方,HTTP为B/S架构(浏览器/服务器架构)提供了一个统一的标准,让不同网站的服务器能够与浏览器交互,HTTP也是RPC的一种实现方式。ijU28资讯网——每日最新资讯28at.com

图片图片ijU28资讯网——每日最新资讯28at.com

建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket ,套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。ijU28资讯网——每日最新资讯28at.com

图片图片ijU28资讯网——每日最新资讯28at.com

在Web应用中,浏览器请求一个URL,服务器就把生成的HTML网页发送给浏览器,而浏览器和服务器之间的传输协议是HTTP。ijU28资讯网——每日最新资讯28at.com

介绍

图片图片ijU28资讯网——每日最新资讯28at.com

RPC

RPC(Remote Procedure Call:远程过程调用):是一种进程间通信方式,是一种技术的思想,而不是规范。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同。ijU28资讯网——每日最新资讯28at.com

RPC基于TCP协议,客服端与服务端需要进行三次握手完成可靠连接,第四步进行数据传输。因为TCP是数据传输层,传输协议需要服务器统一编写,进行二进制传输,依赖序列化和反序列化规则,对于大部分应用需要灵活变动数据则不适用,RPC常用于Socket连接或一些基本不变动的传输格式数据,减少数据变动带来的开发成本。ijU28资讯网——每日最新资讯28at.com

比如说现在有两台服务器A和B,一个应用部署在A服务器上,另一个应用部署在B服务器上,如果A应用想要调用B应用提供的方法,由于他们不在一台机器下,也就是说它们不在一个JVM内存空间中,是无法直接调用的,需要通过网络进行调用,那这个调用过程就叫做RPC。ijU28资讯网——每日最新资讯28at.com

  • 由于HTTP在应用层中完成,整个通信的代价较高,远程过程调用中直接基于TCP进行远程调用,数据传输在传输层TCP层完成,更适合对效率要求比较高的场景,RPC主要依赖于客户端和服务端之间建立Socket链接进行,底层实现比REST更复杂。
  • 无论是何种类型的数据,最终都需要序列化转换成二进制流在网络上进行传输,数据的发送方需要将对象序列化转换为二进制流,而数据的接收方则需要把二进制流反序列化为对象.

HTTP

HTTP(Hypertext Transfer Protocol:超文本传输协议):是互联网上应用最为广泛的一种应用层协议,主要用于分布式、协作式和超媒体信息系统的应用,如万维网(WWW),客户端发起请求,服务器处理请求并返回响应,通常用于web浏览器和web服务器间的通信,HTTP定义了请求报文和响应报文的结构以及不同的请求方法(GET, POST等)ijU28资讯网——每日最新资讯28at.com

图片图片ijU28资讯网——每日最新资讯28at.com

补充

HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)ijU28资讯网——每日最新资讯28at.com

图片图片ijU28资讯网——每日最新资讯28at.com


ijU28资讯网——每日最新资讯28at.com

gRPC是Google发布的基于HTTP 2.0传输层协议承载的高性能开源软件框架,提供了支持多种编程语言的、对网络设备进行配置和纳管的方法。

图片图片ijU28资讯网——每日最新资讯28at.com

ijU28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-85871-0.html从RPC到HTTP:网络通信协议的演变

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Nginx负载均衡算法选择指南:优化性能的智慧

下一篇: Go语言是 如何实现 HTTP代理 和 反向代理

标签:
  • 热门焦点
  • 天猫精灵Sound Pro体验:智能音箱没有音质?来听听我的

    这几年除了手机作为智能生活终端最主要的核心之外,第二个可以成为中心点的产品是什么?——是智能音箱。 手机在执行命令的时候有两种操作方式,手和智能语音助手,而智能音箱只
  • 6月安卓手机性能榜:vivo/iQOO霸占旗舰排行榜前三

    2023年上半年已经正式过去了,我们也迎来了安兔兔V10版本,在新的骁龙8Gen3和天玑9300发布之前,性能榜的榜单大体会以骁龙8Gen2和天玑9200+为主,至于那颗3.36GHz的骁龙8Gen2领先
  • Java NIO内存映射文件:提高文件读写效率的优秀实践!

    Java的NIO库提供了内存映射文件的支持,它可以将文件映射到内存中,从而可以更快地读取和写入文件数据。本文将对Java内存映射文件进行详细的介绍和演示。内存映射文件概述内存
  • 三言两语说透柯里化和反柯里化

    JavaScript中的柯里化(Currying)和反柯里化(Uncurrying)是两种很有用的技术,可以帮助我们写出更加优雅、泛用的函数。本文将首先介绍柯里化和反柯里化的概念、实现原理和应用
  • 这款新兴工具平台,让你的电脑效率翻倍

    随着信息技术的发展,我们获取信息的渠道越来越多,但是处理信息的效率却成为一个瓶颈。于是各种工具应运而生,都在争相解决我们的工作效率问题。今天我要给大家介绍一款效率
  • 猿辅导与新东方的两种“归途”

    作者|卓心月 出品|零态LT(ID:LingTai_LT)如何成为一家伟大企业?答案一定是对“势”的把握,这其中最关键的当属对企业战略的制定,且能够站在未来看现在,即使这其中的
  • 大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • 回归OPPO两年,一加赢了销量,输了品牌

    成为OPPO旗下主打性能的先锋品牌后,一加屡创佳绩。今年618期间,一加手机全渠道销量同比增长362%,凭借一加 11、一加 Ace 2、一加 Ace 2V三款爆品,一加
  • Counterpoint :OPPO双旗舰战略全面落地 高端产品销量增长22%

    2023年6月30日,全球行业分析机构Counterpoint Research发布的《中国智能手机高端市场白皮书》显示,中国智能手机品牌正在寻求高质量发展,中国高端智能
Top