JSON-RPC是什么?和HTTP request的区别?

JSON - RPC:网络与通信的轻量级通信协议 JSON-RPC是一种简单高效的远程过程调用协议,旨在解决分布式系统中服务间通信的问题。本文旨在全面解析JSON-RPC协议的设计原理、实现机制实际应用,帮助开发者理解并有效使用这一技术。本文首先介绍JSON-RPC的基本概念设计原则,然后深入其协议规范技术细节。接着通过实际代码示例展示实现方法,最后探讨高级主题实际应用场景。JSON-RPC: 基于JSON格式的轻量级远程过程调用协议: 远程过程调用,使程序能够像调用本地函数一样调用远程服务客户端(Client): 发起RPC调用的程序。 阅读详情

RPC(Remote Procedure Call)指的是远程过程调用,简单的说,RPC就是从一台机器上通过参数传递的方式调用另一台机器上的一个函数或方法并得到响应结果。
JSON-RPC:remote procedure call protocol encoded in JSON
HTTP:可以看作是RPC的一种具体形式

区别:

  • HTTP有标准,具有通用性,如格式、字段等等,可以方便地在网络上开放HTTP API让别的机器来使用这台服务器上的功能。
  • RPC没有标准(json-rpc有),通常是同一个公司内部的两台机器之间通信,大家会按照实际需要去自定制一套RPC,这样做的好处是灵活高效,但是坏处就是没有通用性。
  • JSON RPC: 相对于一般的HTTP请求通过URI调用远程服务器,JSON-RPC直接在内容中定义了要调用的函数名称(如 {“method”: “getUser”}),对于开发者来说非常的方便。

JSON-RPC格式:

JSON-RPC 2.0和1.0之间一些差异,我们这里介绍2.0的使用,一个JSON-RPC的请求必须包含以下4个字段。

request

  1. jsonrpc: 指定JSON-RPC的版本,必须设置为2.0
  2. id: 调用标识符,用于标示一次远程调用过程,值必须包含一个字符串、数值。
  3. method: 所要调用方法名称的字符串
  4. params: 方法传入的参数,若无参数则传入空[]

response:

  1. jsonrpc: 指定JSON-RPC的版本,固定为为2.0
  2. id: 调用标识符,用于标示一次远程调用过程,值必须包含一个字符串、数值。
  3. result: 如果调用成功则显示响应结果
  4. error: 如果调用失败则显示错误的信息,error带有以下几个字段
    1. code: 错误类型,必须为整数 【必须】
    2. message: 错误的简单描述字,该描述应尽量简短 【必须】
    3. data: 包含关于错误附加信息的基本类型或结构化类型 【可选】

参考:https://blog.csdn.net/chenguolinblog/article/details/90607551

Json-Rpc框架(JsonCpp库使用介绍) 序列化反序列化。序列化功能允许开发者将C++中的数据结构(如对象、数组等)转换成JSON格式的字符串,这种字符串形式便于数据的存储、传输或网络交换。反序列化功能则是这一过程的逆操作,它能够将JSON格式的字符串解析回C++中的数据结构,使得程序能够方便地读取处理这些数据。⭕Json 数据对象类的表⽰public:// 赋值操作符重载// 通过字符串键访问成员,支持赋值获取// 移除具有指定键的成员// 通过索引访问数组元素(只读)// 向数组末尾添加元素。 阅读详情

相关推荐

【从零实现Json-Rpc框架】- 项目设计篇

截至当前,笔者已经将所有基础要用的插件等都装好了,也较为详细地介绍了下几个第三方库那么这篇,笔者就来介绍一下我们该如何设计一个Json-Rpc框架本篇博文对【从零实现Json-Rpc框架】- 项目设计篇做了一个较为详细的介绍,不知道对你有没有帮助呢觉得博主写得还不错的三连支持下吧!会继续努力的~

2301_77954967的博客 1376

JSON-RPC协议

JSON-RPC 是一种轻量级的远程过程调用(RPC)协议,用 JSON 作为数据编码格式。它的核心思想很简单:让客户端可以像调用本地函数一样调用远程服务器上的方法,而消息载荷是一段结构化的 JSON

衣乌安、随笔 600

JSON-RPC 2.0 与 RESTful API 对比:5 个维度解析选型策略

本文深入对比了JSON-RPC 2.0与RESTful API在协议风格、数据格式、错误处理、性能扩展及适用场景等5个维度的差异。通过区块链电商案例,解析JSON-RPC在复杂业务调用传输效率上的优势,以及RESTful在标准化开放API方面的特点,为技术选型提供决策框架。

weixin_34187862的博客 410

通信协议jsonrpc

JSON-RPC是一种轻量级且无状态的远程过程调用(RPC)协议,它使用JSON(JavaScript Object Notation)作为数据格式,并通过HTTP或TCP协议传输数据。它允许客户端服务器之间进行无状态的通信,从而实现分布式应用程序的远程过程调用。

SteveRocket's-Blog 4329

JsonRPC

JSON-RPC是指通信协议采用二进制方式,而不是http,序列化采用JSON的形式;基于json的跨语言远程调用协议;比xml-rpc、webservice等基于文本的协议传输数据格小;相对hessian、Java-rpc等二进制协议便于调试、实现、扩展。调用格式{ "method": "方法名", "params": [“参数数组”], "id": 方法ID}

lingshengxiyou的博客 1795

RPCREST区别

REST是一种面向资源的API设计风格,其核心原则包括:1)URI仅暴露资源(如/dogs),通过HTTP动词(GET/POST/PUT/DELETE)表达操作;2)充分利用HTTP协议特性(状态码、报头等);3)倡导超媒体链接(HATEOAS)。本文通过Python FlaskJava SpringBoot的代码示例,展示了符合REST规范的API实现,对比了错误(含动词URI)与正确设计,强调REST通过标准化设计提升可维护性、缓存效率互操作性,同时指出超媒体作为REST成熟度最高级别的实践价值。

ywl470812087的博客 11万+

RPC好,还是RESTful好?

1. JSON-RPC 什么是JSON-RPC JSON-RPC 2.0规范中定义 JSON-RPC是一个无状态且轻量级的远程过程调用(RPC)协议。本规范主要定义了一些数据结构及其相关的处理规则。它允许运行 在基于socket,http等诸多不同消息传输环境的同一进程中。其使用JSON(RFC 4627)作为数据格式。 它为简单而生! 示例 // request POST /wor...

awz6127的博客 268

JSON-RPC 2.0

JSON-RPC 2.0是基于JSON的轻量级远程过程调用协议,允许程序通过网络请求执行远程方法并获取结果。其核心结构包含版本号、方法名、参数请求ID字段,支持错误处理批量请求。相比REST API,JSON-RPC采用类似本地函数调用的方式,通过单一接口实现各种操作。该协议具有语言无关性、简洁高效的特点,广泛应用于区块链节点通信(如以太坊、比特币)、微服务架构远程控制系统。在区块链领域尤其重要,被用于钱包、交易所与节点间的交互。JSON-RPC 2.0将复杂的网络通信简化为JSON格式的函数调用,为

weixin_44273367的博客 346

BE - 唠叨下 Restful 与 RPC-JSON 基于HTTP的API接口设计

本篇文章不涉及 XML 接口数据内容 : rpc-xml 啰嗦最近在写关于restful相关接口,学习之后,发现与之前所了解到的接口不大一样。从接触移动开发以来均是rpc-json方式进行开发,比如:// request POST /sayHello HTTP/1.1 HOST: api.example.com Content-Type: application/json {"name":"Yua

原小明 5859

【C++/Linux实战项目】从零手撸 Json-RPC 框架,吃透 RPC 核心原理与落地实现

RPC 技术的核心价值与应用场景:分布式系统中远程调用的必要性,Json-RPC 轻量、跨语言的优势本文核心目标:基于 C++ 实现轻量 Json-RPC 框架,掌握 RPC 底层原理、网络通信、序列化、服务注册发现等核心技术框架最终能力:支持同步 / 异步 / 回调 RPC 调用、服务注册与发现、主题发布订阅,基于 Muduo+JsonCpp 实现Gitee项目源码。

yanlou233的博客 891

JSON-RPC 2.0:MCP通信的底层语言

我第一次抓包看MCP的通信内容时有点懵,消息里全是jsonrpc、method、params这些字段,看起来跟HTTP API完全不一样。后来才知道MCP底层用的是JSON-RPC 2.0协议,一个比我预想中更简洁的RPC规范。搞懂JSON-RPC 2.0之后再看MCP的消息流就豁然开朗了,所有工具调用、资源读取、能力协商的本质都是JSON-RPC消息的收发。这篇文章把JSON-RPC 2.0的规范MCP的使用方式完整讲清楚,配上真实的消息示例。

白话机器学习 350

MCP Transport 完整指南:stdio 与 Streamable HTTP 到底怎样传消息

本文系统讲解 MCP 消息如何通过 stdio 与 Streamable HTTP 传输,厘清 MCP、JSON-RPCJSONHTTP SSE 的层级关系;同时覆盖 stdin/stdout/stderr、逐行消息、普通 JSON 响应、请求级 SSE、长期订阅、取消、元数据与安全边界,并通过对比完整流程帮助开发者选择合适的 Transport

ryan_996的博客 431

Hyperf 实现Rpc jsonrpc-http(docker+consul)

Hyperf中实现rpc jsonrpc-http 基于docker consul

weixin_43193813的博客 654

JsonRPC协议详解(协议介绍、请求示例、响应示例)

JsonRPC是一种基于JSON(JavaScript Object Notation)的轻量级远程过程调用协议。与其他RPC协议相比,JsonRPC使用简单的文本格式进行通信,易于阅读编写,广泛应用于Web服务分布式系统中。XML-RPC:使用XML作为通信格式的RPC协议。SOAP:基于XML的通信协议,支持多种传输协议。gRPC:由Google开发的高性能、开源的RPC框架,支持多种编程语言传输协议。

猿长大人 6011

JSON-RPC 快速开始

JSON是一种轻量级的数据交换格式,它可以表示数值、字符串、序列及名/值对集合。 JSON-RPC是一种无状态的,轻量级的远程程序调用协议。叫 JSON 的原因是因为返回值是 JSON

西京刀客 2060

JSON-RPC

RPCRPCRPC是什么?常见的RPC框架RPC框架实现JSON-RPCJSON-RPC是什么?JSON-RPC请求JSON-RPC响应JSON-RPC错误码示例 RPC RPC是什么? RPC(Remote Procedure Call)指的是远程过程调用,就是从一台机器上通过参数传递的方式调用另一台机器上的一个函数或方法并得到响应结果。 RPC会隐藏底层的通讯细节。 RPC是一个请求响应模型,客户端发起请求,服务器返回响应。 RPC在使用形式上像调用本地函数一样去调用远程的函数。 常见的RPC框架

Lydia_r的博客 3715

深入解析 JSON-RPC:从基础到高级应用(附调用示例)

JSON-RPC 是一种无状态、轻量级的远程过程调用(RPC)协议,主要用于在不同系统或服务之间进行通信。它基于 JSON(JavaScript Object Notation)数据格式,使得数据交换变得简单且高效。JSON-RPC 的设计目标是简单易用,同时保持足够的灵活性以满足各种应用场景的需求。它支持多种传输方式,包括 HTTP、WebSocket 等,这使得 JSON-RPC 可以在不同的网络环境中使用。

蜗牛沐雨 2155

【从零实现Json-Rpc框架】- 第三方库介绍 - jsoncpp篇

紧接上回,接下来笔者将介绍rpc框架的最重要的三个第三方库,方便大家理解这回是jsoncpp篇四、Jsoncpp库主要是用于实现 Json 格式数据的序列化反序列化,它实现了将多个数据对象组织成为 json 格式字符串,以及将 Json 格式字符串解析得到多个数据对象的功能。先看一下 Json数据对象类的表示Value&// Value重载了[]=,因此所有的赋值获取数据都可以通过// 简单的⽅式完成 val["name"] = "xx";// 移除元素。

2301_77954967的博客 820
上一篇: mac catalina报错gyp: No Xcode or CLT version detected
下一篇: 网络基础知识
virusos
博客等级 码龄10年 14粉丝 · 131原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值