1. 使用http协议进行前后端交互,后端使用http到rpc协议进行转发:https://github.com/lilinxi/pilipili
  2. 使用thrift或protobuf等序列化协议构造restful-api:https://www.jianshu.com/p/f084ea37e419
  3. 使用nginx或envoy等代理服务器转发,仅限gRPC-web
    1. envoy转发:https://github.com/grpc/grpc-web/tree/master/net/grpc/gateway/examples/helloworld
    2. nginx转发:https://segmentfault.com/a/1190000022022271
  4. 直接使用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)进行前后端交互的若干种方式相关推荐

  1. 前后端交互的几种方式

    Vue+Springboot 前后端交互的几种方式 前置知识点 用于接收前端参数传递的几个注解 @RequestBody注解 @RequestParam注解 @PathVariable注解 @Requ ...

  2. 前后端交互的两种方式

    方式一:表单提交 表单(form):表单用于收集用户输入信息,并将数据提交给服务器.是一种常见的与服务端数据交互的一种方式 //1. action:指定表单的提交地址 //2. method:指定表单 ...

  3. web服务器与网页表单通信,前端与后端通信的几种方式

    只有知道了历史,才能更好的把握现在和未来. 在项目中,通常前端开发主要完成两件事情,一是界面搭建,一是数据交互. 下面是我总结前端与后端交互的几种方式,本文只作简单介绍,不做深入了解. 一.AJAX ...

  4. 前后端交互,网络请求

    这边文章主要根据我自己的前端开发工作经验,东拼西凑出来的一点理解,希望能够对大家有点帮助,如果有误导或者错误的地方还请帮助指正,感谢!!! 前后端交互我理解主要分为三个主要的部分: 1.客户端 2.服 ...

  5. echarts前后端交互数据_SpringBoot2.0实战(26)整合SpringSecurity前后端分离JSON交互...

    在前端的文章中,我们实现了使用 SpringSecurity 实现登录鉴权,并使用数据库存储用户信息,实现登录鉴权 SpringBoot2.0实战(24)整合SpringSecurity之最简登录方法 ...

  6. [原创]前后端交互的方式整理

    前言 本来我只是想整理下前后端如何传输数据这种交互过程,大概流程如下: 前台使用ajax通过get/post等方式提交数据到后端 后端如何获取参数 经过业务处理后,返回前端对应的响应数据 前端接受到响 ...

  7. 写给刚入门的前端工程师的前后端交互指南

    转自原文 写给刚入门的前端工程师的前后端交互指南 作为刚接触前端的不久的童鞋,大家都会兴奋于CSS和JS所带来漂亮界面,然而,前端工程师除了UI重构外,还有非常重要的职责在正确的区域渲染出服务端的数据 ...

  8. ajax学习----json,前后端交互,ajax

    json <script>var obj = {"name": "xiaopo","age": 18,"gender& ...

  9. 前后端交互概述与URL地址格式

    前后端交互概述与URL地址格式 接口调用方式 原生ajax 基于jQuery的ajax fetch axios URL地址格式

最新文章

  1. 我的Android进阶之旅------Android嵌入图像InsetDrawable的用法
  2. netty权威指南学习笔记五——分隔符和定长解码器的应用
  3. 系统聚类(hierarchical clustering analysis)
  4. 两点(51nod 深搜)
  5. C++的文艺复兴: Why C++? 王者归来
  6. 移动数字广告与互联网反欺诈蓝皮报告
  7. DPDK examples rxtx_callbacks完全注释
  8. qt向服务器传输文字_Qt实现客户端与服务器消息发送
  9. Vue的v-if与v-show的区别
  10. OpenCV精进之路(二十三):实例——Bag of Features(BoF)图像分类实践
  11. 黑马程序员顺义校区php_2018黑马整套php视频教程
  12. C语言 职工信息管理系统
  13. matlab牛顿插值法
  14. 【中亦安图】运维无小事之一次导致数据丢失的小变更(10)
  15. 主动学习(Active Learning) 概述、策略和不确定性度量
  16. 【算法基础四】C语言小项目实战---通讯录管理系统(单链表)
  17. 华为 Telnet aaa认证模式
  18. IDC服务商开启行业自律新篇章
  19. 一图了解交通拥堵治理措施
  20. echarts 柱状图(1)多条柱状图完成参考标准需求

热门文章

  1. 虚拟机装ubuntu报错
  2. 微信推出热搜排行榜,微博压力山大?
  3. 基于Python的课程管理系统【100010023】
  4. 国标 计算机房 湿度,数据中心机房:温度、湿度标准是什么?
  5. 2017年学习总结-新的开始
  6. kubeadm工作原理-kubeadm init原理分析-kubeadm join原理分析
  7. CDN和DNS的区别
  8. python决策树实例_机器学习中的决策树及python实例
  9. bowed their Darrelle Revis Jersey
  10. JAVA删除pdf空白页_如何从iText中的PDF中删除空白页面