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

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

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

前言

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

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

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

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

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

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

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

介绍

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

RPC

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

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

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

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

HTTP

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

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

补充

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

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


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

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

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

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

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

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

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

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

标签:
  • 热门焦点
  • 之家push系统迭代之路

    前言在这个信息爆炸的互联网时代,能够及时准确获取信息是当今社会要解决的关键问题之一。随着之家用户体量和内容规模的不断增大,传统的靠"主动拉"获取信息的方式已不能满足用
  • 如何通过Python线程池实现异步编程?

    线程池的概念和基本原理线程池是一种并发处理机制,它可以在程序启动时创建一组线程,并将它们置于等待任务的状态。当任务到达时,线程池中的某个线程会被唤醒并执行任务,执行完任
  • Python异步IO编程的进程/线程通信实现

    这篇文章再讲3种方式,同时讲4中进程间通信的方式一、 Python 中线程间通信的实现方式共享变量共享变量是多个线程可以共同访问的变量。在Python中,可以使用threading模块中的L
  • 慕岩炮轰抖音,百合网今何在?

    来源:价值研究所 作者:Hernanderz“难道就因为自己的一个产品牛逼了,从客服到总裁,都不愿意正视自己产品和运营上的问题,选择逃避了吗?”这一番话,出自百合网联合创
  • 梁柱接棒两年,腾讯音乐闯出新路子

    文丨田静 出品丨牛刀财经(niudaocaijing)7月5日,企鹅FM发布官方公告称由于业务调整,将于9月6日正式停止运营,这意味着腾讯音乐长音频业务走向消亡。腾讯在长音频领域还在摸索。为
  • 三星电子Q2营收60万亿韩元 存储业务营收同比仍下滑超过50%

    7月27日消息,据外媒报道,从三星电子所发布的财报来看,他们主要利润来源的存储芯片业务在今年二季度仍不乐观,营收同比仍在大幅下滑,所在的设备解决方案
  • 三星显示已开始为AR设备研发硅基LED微显示屏

    7月18日消息,据外媒报道,随着苹果首款头显产品Vision Pro在6月份正式推出,AR/VR/MR等头显产品也就将成为各大公司下一个重要的竞争领域,对显示屏这一关
  • iQOO 11S屏幕细节公布:首发三星2K E6全感屏 安卓最好的直屏手机

    日前iQOO手机官方宣布,新一代电竞旗舰iQOO 11S将会在7月4日19:00正式与大家见面。随着发布时间的日益临近,官方关于该机的预热也更加密集,截至目前已
  • OPPO K11搭载长寿版100W超级闪充:26分钟充满100%

    据此前官方宣布,OPPO将于7月25日也就是今天下午14:30举办新品发布会,届时全新的OPPO K11将正式与大家见面,将主打旗舰影像,和同档位竞品相比,其最大的卖
Top