使用rpc(thrift或protobuf)进行前后端交互的若干种方式
- 使用http协议进行前后端交互,后端使用http到rpc协议进行转发:https://github.com/lilinxi/pilipili
- 使用thrift或protobuf等序列化协议构造restful-api:https://www.jianshu.com/p/f084ea37e419
- 使用nginx或envoy等代理服务器转发,仅限gRPC-web
- envoy转发:https://github.com/grpc/grpc-web/tree/master/net/grpc/gateway/examples/helloworld
- nginx转发:https://segmentfault.com/a/1190000022022271
- 直接使用rpc框架生成的js-client,使用node,vue或react
nginx 转发 gRPC-web:
server {listen 8199;server_name _;access_log /tmp/grpc.log;error_log /tmp/grpc.log debug;location ~ \.(html|js)$ {root /var/www/html;}location / {# 重点!!需要将Content-Type更改为 application/grpc# grpc-web过来的是application/grpc-web+proto || application/grpc-web+text (取决于生成js代码时grpc-web_out 的mode选项,本文用grpcweb 则为application/grpc-web+proto)grpc_set_header Content-Type application/grpc;grpc_pass localhost:9999;# 因浏览器有跨域限制,这里直接在nginx支持跨域if ($request_method = 'OPTIONS') {add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Transfer-Encoding,Custom-Header-1,X-Accept-Content-Transfer-Encoding,X-Accept-Response-Streaming,X-User-Agent,X-Grpc-Web';add_header 'Access-Control-Max-Age' 1728000;add_header 'Content-Type' 'text/plain charset=UTF-8';add_header 'Content-Length' 0;return 204;}if ($request_method = 'POST') {add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Transfer-Encoding,Custom-Header-1,X-Accept-Content-Transfer-Encoding,X-Accept-Response-Streaming,X-User-Agent,X-Grpc-Web';add_header 'Access-Control-Expose-Headers' 'Content-Transfer-Encoding, grpc-message,grpc-status';}}
}
使用rpc(thrift或protobuf)进行前后端交互的若干种方式相关推荐
- 前后端交互的几种方式
Vue+Springboot 前后端交互的几种方式 前置知识点 用于接收前端参数传递的几个注解 @RequestBody注解 @RequestParam注解 @PathVariable注解 @Requ ...
- 前后端交互的两种方式
方式一:表单提交 表单(form):表单用于收集用户输入信息,并将数据提交给服务器.是一种常见的与服务端数据交互的一种方式 //1. action:指定表单的提交地址 //2. method:指定表单 ...
- web服务器与网页表单通信,前端与后端通信的几种方式
只有知道了历史,才能更好的把握现在和未来. 在项目中,通常前端开发主要完成两件事情,一是界面搭建,一是数据交互. 下面是我总结前端与后端交互的几种方式,本文只作简单介绍,不做深入了解. 一.AJAX ...
- 前后端交互,网络请求
这边文章主要根据我自己的前端开发工作经验,东拼西凑出来的一点理解,希望能够对大家有点帮助,如果有误导或者错误的地方还请帮助指正,感谢!!! 前后端交互我理解主要分为三个主要的部分: 1.客户端 2.服 ...
- echarts前后端交互数据_SpringBoot2.0实战(26)整合SpringSecurity前后端分离JSON交互...
在前端的文章中,我们实现了使用 SpringSecurity 实现登录鉴权,并使用数据库存储用户信息,实现登录鉴权 SpringBoot2.0实战(24)整合SpringSecurity之最简登录方法 ...
- [原创]前后端交互的方式整理
前言 本来我只是想整理下前后端如何传输数据这种交互过程,大概流程如下: 前台使用ajax通过get/post等方式提交数据到后端 后端如何获取参数 经过业务处理后,返回前端对应的响应数据 前端接受到响 ...
- 写给刚入门的前端工程师的前后端交互指南
转自原文 写给刚入门的前端工程师的前后端交互指南 作为刚接触前端的不久的童鞋,大家都会兴奋于CSS和JS所带来漂亮界面,然而,前端工程师除了UI重构外,还有非常重要的职责在正确的区域渲染出服务端的数据 ...
- ajax学习----json,前后端交互,ajax
json <script>var obj = {"name": "xiaopo","age": 18,"gender& ...
- 前后端交互概述与URL地址格式
前后端交互概述与URL地址格式 接口调用方式 原生ajax 基于jQuery的ajax fetch axios URL地址格式
最新文章
- 我的Android进阶之旅------Android嵌入图像InsetDrawable的用法
- netty权威指南学习笔记五——分隔符和定长解码器的应用
- 系统聚类(hierarchical clustering analysis)
- 两点(51nod 深搜)
- C++的文艺复兴: Why C++? 王者归来
- 移动数字广告与互联网反欺诈蓝皮报告
- DPDK examples rxtx_callbacks完全注释
- qt向服务器传输文字_Qt实现客户端与服务器消息发送
- Vue的v-if与v-show的区别
- OpenCV精进之路(二十三):实例——Bag of Features(BoF)图像分类实践
- 黑马程序员顺义校区php_2018黑马整套php视频教程
- C语言 职工信息管理系统
- matlab牛顿插值法
- 【中亦安图】运维无小事之一次导致数据丢失的小变更(10)
- 主动学习(Active Learning) 概述、策略和不确定性度量
- 【算法基础四】C语言小项目实战---通讯录管理系统(单链表)
- 华为 Telnet aaa认证模式
- IDC服务商开启行业自律新篇章
- 一图了解交通拥堵治理措施
- echarts 柱状图(1)多条柱状图完成参考标准需求