【VUE】何为正向代理,何为方向代理,何为反向代理服务器,怎么通过反向代理服务器解决跨域问题

知乎上有大佬写的很好,我这里搬运一下
在这里插入图片描述
在这里插入图片描述
反向代理服务器
‘反向代理服务器’ 有两个概念,一是‘代理服务器’,二是‘反向’

‘代理服务器’比较好理解,例如需要访问某网站,不想或不能直接访问,例如网络的原因、隐私的原因等,我们就连接一个代理服务器,这样对于这个网站来说,访问他的用户是这个代理服务器,而不是我们自己

‘反向’的意思我们没有通过代理服务器访问网站,但网站却在自己服务器前面加了一个代理,我们输入网址发起请求后,请求先到了这个代理服务器,代理服务器再把请求转给网站服务器

作用:
(1)安全过滤

为了安全,不允许用户直接接触真实服务器,任何访问请求都要先到达反向代理服务器,反向代理服务器来进行验证、过滤等安全类操作,符合条件的请求才会被转发到真实服务器

例如最简单的场景:只有在IP白名单中的IP才能访问

(2)内容缓存

当访问量越来越大时,网站服务器对每个请求都需要进行处理,压力巨大,根据局部访问性原理,这么多请求中必然有很多是重复的,网站服务器做这些重复劳动很累

这时就需要反向代理服务器来分担一部分工作,反向代理服务器把一些常用的内容都缓存到自己身上,用户的请求先来到反向代理服务器,他看自己这有没有用户需要的内容,有就直接返回给用户,没有时才交给网站服务器来处理

这样就相当于网站服务器有了一个助理,帮他处理了很多重复性工作,减轻了压力

(3)负载均衡

当访问量越来越大时,一个网站服务器扛不住了,需要在添加N个服务器,那么当用户请求过来后,到底由那台服务器进行处理呢?

这时就需要在这N台服务器前面添加一个反向代理服务器,做为负载均衡器

用户请求先发到负载均衡器,他思考一下这个请求应该交给谁,想好后就转发过去,这样就让N台服务器均衡的处理请求了

反向代理服务器解决跨域问题

什么是跨域?
浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域
域名:
 主域名不同 http://www.baidu.com/index.html -->http://www.sina.com/test.js
 子域名不同 http://www.666.baidu.com/index.html -->http://www.555.baidu.com/test.js
 域名和域名ip http://www.baidu.com/index.html -->http://180.149.132.47/test.js
端口:
 http://www.baidu.com:8080/index.html–> http://www.baidu.com:8081/test.js
协议:
 http://www.baidu.com:8080/index.html–> https://www.baidu.com:8080/test.js
备注:
 1、端口和协议的不同,只能通过后台来解决
 2、localhost和127.0.0.1虽然都指向本机,但也属于跨域

跨域限制
1、无法读取非同源网页的 Cookie、LocalStorage 和 IndexedDB
2、无法接触非同源网页的 DOM
3、无法向非同源地址发送 AJAX 请求(可以发送,但浏览器会拒绝接受响应)

通过配置反向代理服务器解决跨域问题
在vue开发环境中,通过ProxyTable配置反向代理,使浏览器将axios发送的带’api’前缀的请求发送到前端代理服务器,再通过前端代理服务器发送给后端服务器,避免了跨域无法访问的问题。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值