翻译-理解RPC,REST和GraphQL
了解 RPC 相关的一些知识,这个文章写得不错。
未完待续。。。
每个API都会表现出一些模式,最终归结为 RPC, REST, 或者一个”查询语言”
http vs rpc
rpc 缺点:耦合性强
http缺点:使用效率低,冗余数据多
优点:解耦
通用定义的http1.1协议的tcp报文包含太多废信息,一个POST协议的格式大致如下
HTTP/1.0 200 OK |
即使编码协议也就是body是使用二进制编码协议,报文元数据也就是header头的键值对却用了文本编码,非常占字节数。如上图所使用的报文中有效字节数仅仅占约 30%,也就是70%的时间用于传输元数据废编码。
Remote Procedure Call (RPC)
RPC 是最早,最简单的 API 交互形式。是可以执行另一个服务器上一段代码的一种途径。当使用 HTTP 或者 AMQP 实现的时候就是 Web API。有一个方法和一些参数,很像使用 javascript 调用函数,通过方法名字和参数就可以调用了。
例如:
POST /sayHello HTTP/1.1 |
在JavaScript中同样的,我们定义函数,然后在后面需要的时候调用它。
/* Signature */ |