当前位置: 首页 > article >正文

前后端跨域联调

很多伙伴在学习前端或后端到一定时段时,就会思考前端后端两个东西之间的请求和数据到底是怎么联系起来的!

今天就来了解一下这个东西吧!

1.前端发送的请求,如何请求到后端服务的?

对于前端发出来的请求,跟后端的接口地址没有匹配到。

前端发出来的请求,并不是直接请求到后端服务器的,而是由nginx(反向代理)做了一个转发,把请求发送到后端服务器。


Nginx 反向代理 是一种常见的应用场景,它作为代理服务器,接收客户端请求,并将这些请求转发给后端服务器(如应用服务器)。反向代理与正向代理的区别在于,正向代理是客户端的代理,而反向代理是服务端的代理。 


工作原理:

  1. 客户端请求:用户通过浏览器等客户端向服务器发送请求(如访问一个网站)。
  2. Nginx 接受请求:Nginx 作为反向代理服务器,接收这些请求。Nginx 会处理请求并将其转发到后端应用服务器(例如,一个 Web 应用或者 API 服务)。
  3. 后端服务器处理请求:后端服务器处理请求后,将结果返回给 Nginx。
  4. Nginx 返回响应:Nginx 将后端服务器的响应返回给客户端。

前端请求为什么不直接请求到后端服务器?

  • 负载均衡:Nginx 可以将客户端请求分发到多台后端服务器,实现负载均衡,避免某一台服务器压力过大。
  • 安全性:反向代理可以隐藏后端服务器的具体信息,增强系统的安全性。
  • 缓存:Nginx 可以缓存静态文件(如图片、CSS、JS)和动态内容的响应,减少后端服务器的负载,提高访问速度。
  • SSL/TLS 终止:可以让 Nginx 处理 SSL 加密与解密(SSL 终止),减少后端服务器的压力。

下面来举个例子:

server{
        listen 80;
        server_name localhost;
        
        localhost/api/{
                proxy_pass    http://localhost:8080/admin/; #反向代理
        }
}

前端:http://localhost/api/employee/login

后端:http://localhost:8080/admin/employee/login

我们可以看到前端请求的地址中:/api/ 恰好与上面代码中的/api/匹配,这时就会将前端发送过来的请求转发到后端(通过proxy_pass指令,将前端发送的请求,转发到后端的接口地址)。

简单的讲,拿上面的例子,就是将/api/替换为proxy_pass后的地址(红色部分),而/api/后面的动态地址,则直接拼接到替换后的地址后面即可,这样就得到了新的请求地址,也就成功将请求的地址转发到后端服务器。

 


http://www.kler.cn/a/382714.html

相关文章:

  • STL整理
  • C++进阶-->红黑树的实现
  • 蓝桥杯真题——三角回文数(C语言)
  • 跳蚤市场之商品发布功能
  • 低代码解锁跨平台应用开发新境界
  • 理解 WordPress | 第一篇:与内容管理系统的关系
  • SpringBooot之事务失效的场景
  • 护肤品类电商代运营的公司介绍与分析
  • 【Docker】X-DOC:使用WSL在Windows中体验Linux发行版安装桌面版Docker
  • 在 MacOS 上跑 kaldi
  • Java+控制台 商城销售系统
  • 【动态规划 数学】2745. 构造最长的新字符串|1607
  • Web Workers 学习笔记
  • 【QT】Qt文件和多线程
  • SSLHandshakeException错误解决方案
  • Flutter常用命令整理
  • Halcon 矫正图像 图像矫正
  • CustomDataSource、Entity 和 Primitive 区别
  • MongoDB笔记02-MongoDB基本常用命令
  • 小程序 + AI 自动直播:一部手机开启抖音挂载小程序流量主变现之旅
  • 搭建react项目
  • Markdown转HTML
  • 前深度学习时代-经典的推荐算法
  • 《JVM第7课》堆区
  • qt QTextStream详解
  • ssm基于Web的汽车客运订票系统的设计与实现+vue