正向代理与反向代理、跨域问题、X-Forwarded-For、X-Real-IP

本文详细介绍了正向代理和反向代理的区别,以及它们在数据请求过程中的作用。同时,针对跨域问题,文章提供了包括Vue配置的Webpack代理和Nginx反向代理在内的解决方法。此外,还讨论了X-Forwarded-For和X-Real-IP头在追踪客户端IP中的角色。
摘要由CSDN通过智能技术生成

代理

正向代理

正向代理即是客户端代理, 代理客户端, 服务端不知道实际发起请求的客户端.

是指一个位于客户端和目标服务器(target server)之间的服务器,为了从目标服务器取得内容,客户端向代理发送一个请求并指定目标(目标服务器),然后代理向目标服务器转交请求并将获得的内容返回给客户端。
  
数据请求过程:浏览器-》代理服务器-》目标服务器
数据返回过程:目标服务器-》代理服务器-》浏览器

反向代理

反向代理即是服务端代理, 代理服务端, 客户端不知道实际提供服务的服务端

反向代理(Reverse Proxy)是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
  
数据请求过程:浏览器-》【反向代理服务器-》处理数据的服务器】
数据返回过程:【处理数据的服务器-》反向代理服务器】-》浏览器

在这里插入图片描述

比较

从用途上来讲:
反向代理的典型用途是为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。
  
从安全性来讲:
正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施以确保仅为经过授权的客户端提供服务。
反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。
  
从使用方来看:
正向代理是浏览器端进行配置的,与服务器端无关,甚至可以对服务端隐藏。
反向代理是服务器端配置的,对浏览器端是透明的。

跨域问题

介绍

跨域资源共享(CORS)是前后端分离项目很常见的问题,全称Cross-Origin Resource
Sharing,意为跨域资源共享。当一个资源去访问另一个不同域名或者同域名不同端口的资源时,就会发出跨域请求。如果此时另一个资源不允许其进行跨域资源访问,那么访问的那个资源就会遇到跨域问题。

什么是跨域? 域名 协议 ip地址 端口 任何一个不一样 就跨域

解决方法

解决跨域有多种方案

通过vue在 vue.config.js 可以配置重写webpack代理

webpack代理原理:
说白了 就是通过 在本地通过nodejs 启动一个微型服务,
然后我们先请求我们的微型服务, 微型服务是服务端, 服务端代我们去请求我们想要的跨域地址, 因为服务端是不受同源策略的限制的, 具体到开发中,打包工具webpack集成了代理的功能,可以采用配置webpack的方式进行解决, 但是这种仅限于 本地开发期间, 等项目上线时,还是需要另择代理 nginx

例:

// vue.config.js  文件
module.exports = {
   
 devServer: {
   
              //    "/
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值