【网络服务】正向代理和反向代理到底是什么意思

news2024/9/25 9:37:10

🚀 个人主页 极客小俊
✍🏻 作者简介:程序猿、设计师、技术分享
🐋 希望大家多多支持, 我们一起学习和进步!
🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注

前言

在学习和应用网络服务中,你会经常听见正向代理反向代理 这两个概念,很多人觉得很复杂,其实不然,首先要理解什么是正向代理反向代理 首先就要搞清楚什么是代理, 如果你使用过Fiddler、Charles这样的工具,那么你肯定知道代理是什么意思!

简单的说代理在网络服务中就是帮助客户端服务器进行信息沟通的中间件, 而且在这个过程中,中间代理还可以对信息数据进行一些处理修改

例如Charles代理抓包工具如下图:

中间的Charles就属于一个代理正向反向 代理又是什么呢! 这就要涉及到客户端服务端

正向代理模式(Forward proxy)

我们先来举个例子, 比如说当前访问某些网站应用的时候,通常网站服务器端都会记录下用户的IP地址, 那么如果你不想被服务端察觉到你的IP地址应该怎么办呢? 这个时候,你就可以想弄一台中间服务器让它来帮你完成与目标服务端的请求!

通过对中间这台代理服务器, 我们只需要在本地的电脑上设置一下这个代理服务器IP地址端口号找到它,就能让它来转发用户的HTTP请求响应,从而实现由代理服务器来帮我们访问目标服务,这样服务端也不会知道我们真正的用户IP地址了!

如图

从上图中我们就可以看出来,只要我们把正向代理这个服务加以配置或者伪装成某个国家地区的IP地址,那么这样服务端最终也就只能知道正向代理服务这里的IP地址区域, 这对保护用户的隐私很有帮助, 也提高了安全性!

所以正向代理其实面向的是客户端

如图

反向代理模式(Reverse proxy)

那如果你理解了正向代理, 那反向代理就很容易理解了,因为反向代理正向代理是相反的!

正向代理帮助代理客户端,而反向代理帮助代理服务端

我们来看下图:

如图

从上图中,我们可以看到反向代理服务器会拦截外界客户端的请求, 然后决定负责把访问请求转发给服务端,然后服务器处理请求并将响应返回给反向代理服务器,然后由反向代理服务器将响应返回给客户端

比如: 当你打开一个网站的时候,反向代理服务器就可以来决定请求访问指定的服务器资源,并且也可以从指定的服务器中返回响应数据到客户端, 其实这就是俗称的负载均衡, 因为反向代理是一种网络架构,而负载均衡是一种技术策略,所以负载均衡可以使用反向代理来实现。

但从感觉上来说反向代理服务器也一样位于客户端服务器之间, 而且对于客户端来说, 反向代理服务器就像是目标服务器一样, 客户端根本不知道真正的服务器地址在哪里, 相当于隐藏后端服务器的真实地址!

所以反向代理其实面向的是服务端

如图

从安全性来说具备反向代理模式的服务器会更加安全,网络攻击者最多也只能针对反向代理服务器而不能攻击到真正的服务器!

总而言之反向代理就是一种代理服务器, 它代理了目标服务器去和客户端进行HTTP请求与响应!

正向代理和反向代理之间的区别

其实我们在上面的图中也可以完全看清楚它们之间的核心区别

  1. 正向代理面向客户端
  2. 反向代理面向服务端

举个栗子

正向代理一般是客户端设置的,比如在自己的电脑上安装一个代理软件 , 然后服务器不知道真正的客户端到底是谁,以为访问自己的就是真实的客户端

反向代理一般是服务器架设的,比如在服务器机器集群中部署一个反向代理服务器用做请求和响应工作, 那么客户端就不知道真正的服务器是谁,以为自己访问的就是真实的服务器。

从用途上讲正向代理主要是用来解决一些访问限制问题, 比如我们熟知的科学上网, 而反向代理则是提高服务器安全性的一种架构方案,比如负载均衡、安全防护等作用!

"👍点赞" "✍️评论" "收藏❤️"

大家的支持就是我坚持下去的动力!

如果以上内容有任何错误或者不准确的地方,🤗🤗🤗欢迎在下面 👇👇👇 留个言指出、或者你有更好的想法,
欢迎一起交流学习❤️❤️💛💛💚💚

更多 好玩 好用 好看的干货教程可以 点击下方关注❤️ 微信公众号❤️
说不定有意料之外的收获哦..🤗嘿嘿嘿、嘻嘻嘻🤗!
🌽🍓🍎🍍🍉🍇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1706017.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kubeadm引导欧拉系统高可用的K8S1.28.X

文章目录 一. 核心组件架构二. 有状态与无状态应用三. 资源对象3.1 规约与状态3.2 资源的分类-元数据,集群,命名空间3.2.1 元数据3.2.2 集群资源 3.3 命名空间级3.3.1 pod3.3.2 pod-副本集3.3.3 pod-控制器 四. Kubeadm安装k8s集群4.1 初始操作4.2 ~~所有节点安装Docker&#x…

使用虚拟卡注册亚马逊店铺亲测墨西哥、北美都可以亲测~~

这几天测试了使用虚拟信用卡注册墨西哥与北美站的店铺,成功下店,总有人说会被扫,其实去年12月费就有使用卡注册店铺,至今还是好的 当然也不是完全都没有可能店铺不会挂,挂的时候提供账单就好了,直接找客服…

设计模式——工厂三兄弟之简单工厂

1.业务需求 ​ 大家好,我是菠菜。在介绍这期简单工厂设计模式前,我们先来看看这样的需求:制作一个简单的计算器,能够实现控制台输入俩个数以及运算符完成运算。 2.初步实现 实现第一版思路: ​ 创建计算器类&…

k8s污点及容忍度+实践

k8s污点及容忍度实践 前言 一、标签、注解和污点1、如何查询污点及一个容器或者工作负载的标签注解a、通过describe命令查看一个节点的详细信息 2、标签查询修改 二、污点和容忍度容忍度(Tolerations)2、taint / label命令及解释 三、为应用程序设置干扰…

NameSilo + Cloudflare 给网站加个域名(附 NameSilo 购买域名优惠码)

网站做好了之后,下一步就是买域名 在国内买域名的话,还需要备案,个人名下备案好像是还有限制,我就去 NameSilo 上面买的 在买之前,对比过几家 比如: godaddy/namecheap/cloudflare 本来是倾向于在 godaddy 上面买的,因为它支持支付宝支付,但是在详细看的时候,发现如果购买一年…

腾讯云COS上传文件出现的问题

1、没有配置 ObjectMetadata 的文件长度 腾讯云COS上传文件出现数据损坏问题_no content length specified for stream data. strea-CSDN博客 2、 使用 FileInputStream使用完没有及时关闭导致报错 ClientAbortException: java.nio.channels.ClosedChannelException 添加…

AI Agent:自主性、反应性与交互性的融合,将颠覆软件行业

Agent来袭:AI如何变身软件界的超级英雄? ©作者|Zhongmei 来源|神州问学 前言 “AI Agent不仅会彻底改变计算机的使用方式,它还将颠覆软件行业,是一个对科技行业的冲击波,是一场自‘输入命令到点击图标’变革之后…

266 基于matlab的FCM+KFCM模糊C均值聚类分析算法

基于matlab的FCMKFCM模糊C均值聚类分析算法,输入分割对象,对分割对象进行参数设置,包括分割类别数,核参数。输出分割结果。具有GUI操作界面。程序已调通,可直接运行。 266 FCM KFCM 模糊C均值聚类 GUI - 小红书 (xiaoh…

站内信设计

参考文章:https://cloud.tencent.com/developer/article/1684449 b站站内信业务设计: 消息的类型分为: 1、系统消息 2、、点赞、回复等用户行为之间的消息(事件提醒) 3、用户之间的消息 系统消息 用一个用户消息表可以吗? 可…

主副坐标轴作图(即双坐标轴)

主副坐标轴显示: import numpy as np from matplotlib import pyplot as plt plt.rcParams[font.sans-serif][SimHei] plt.rcParams[axes.unicode_minus] False xnp.arange(0.1,10,0.01) data1np.exp(x) data2np.log(x) fig,ax1plt.subplots() #subplots一定要带s…

室内也可以用北斗定位?还能用RTK?

室内卫星顾名思义,就是在室内有遮挡环境中的卫星定位技术,众所周知,目前全球几大GNSS定位系统已经很完善,但是GNSS有个致命的弱点,就是地面如果有遮挡就没有信号,在这样的条件下,在室内定位场景…

YOLOv8+PyQt5农作物杂草检测系统完整资源集合(yolov8模型,从图像、视频和摄像头三种路径识别检测,包含登陆页面、注册页面和检测页面)

农作物杂草检测YOLOV8(https://mbd.pub/o/bread/mbd-ZpaTl5tv)_哔哩哔哩_bilibili 资源包含可视化的农作物杂草检测系统,基于最新的YOLOv8训练的农作物杂草检测模型,和基于PyQt5制作的可视化农作物杂草检测系统,包含登陆页面、注册页面和检测…

免费,Python蓝桥杯等级考试真题--第15级(含答案解析和代码)

Python蓝桥杯等级考试真题–第15级 一、 选择题 答案:B 答案:D 解析:集合的并集运算有两种方式,一种是使用“|”运算符进行操作,另一种是使用union()方法来实现,故答案为D。 答案:A 解析&…

STM32启动过程分析

Keil堆栈设置注意事项 一、启动模式 复位方式:上电复位、硬件复位、软件复位 从地址0x0000 0000处取出堆栈指针MSP的初始值,该值就是栈顶地址。从地址0x0000 0004处取出程序计数器指针PC的初始值,该值指向复位后执行的第一条指令。 说白了就…

2024年【危险化学品经营单位安全管理人员】考试报名及危险化学品经营单位安全管理人员找解析

题库来源:安全生产模拟考试一点通公众号小程序 危险化学品经营单位安全管理人员考试报名考前必练!安全生产模拟考试一点通每个月更新危险化学品经营单位安全管理人员找解析题目及答案!多做几遍,其实通过危险化学品经营单位安全管…

ArcGIS基本操作-常用的空间分析工具梳理

ArcGIS空间分析工具使用 如果我们在进行科研时需要将研究区地形地貌作为一项指标的话,将可能遇到坡度、坡向、地形起伏度、地表切割深度等因子计算,下面我向大家介绍如何利于ArcGIS软件的空间分析工具,基于高程数据,分析重庆市的…

聊聊如何感知项目引入哪些功能特性

前言 使用过springcloud全家桶朋友,应该知道springcloud涉及的组件很多,为了让开发者快速了解项目引入了springcloud哪些组件,springcloud引入了HasFeatures,配合Actuator,可以让开发者感知到项目引入的组件功能类型、…

深度解析Nginx配置文件:从全局块到upstream块的探索之旅

Nginx配置文件的简介 在浩瀚的互联网世界中,Nginx就如同一座大型交通枢纽,将访问者的请求精准地引导到正确的服务终点。而这一切,都离不开一个神秘而重要的角色——Nginx配置文件。这个文件,就像是一份详尽的路线图,为…

leetCode.84. 柱状图中最大的矩形

leetCode.84. 柱状图中最大的矩形 题目思路 代码 class Solution { public:int largestRectangleArea( vector<int>& h ) {int n h.size();vector<int> left( n ), right( n );stack<int> st;// 求每个矩形的第一个小于左边界的矩形 - 用单调栈for ( …

大小字符判断

//函数int my_isalpha(char c)的功能是返回字符种类 //大写字母返回1&#xff0c;小写字母返回-1.其它字符返回0 //void a 调用my_isalpha()&#xff0c;返回大写&#xff0c;输出*&#xff1b;返回小写&#xff0c;输出#&#xff1b;其它&#xff0c;输出&#xff1f; #inclu…