简单理解正向代理和反向代理

news2025/1/6 20:48:16

上一篇文章说到反向代理是用来做负载均衡的,同时我就想到了那么正向代理是不是也可以说一说,可能还是有很多人是弄不清他俩的区别是什么的吧?

那么本次文章就用借钱的例子来阐述一下什么是正向代理,什么是反向代理

正向代理

正向代理就是一个位于客户端和目标服务器之间的服务器,这是一个代理服务器

客户端为了从目标服务器获取内容,但是客户端由于限制无法直接访问到目标服务器,那么客户端就可以向一个代理服务器发送一个请求并指定目标服务器

代理服务器收到请求后,就会向目标服务器转交请求并将获得的内容返回给客户端

咱们用借钱来比喻一下,就会很容易明白

小明,想找一个老板借钱,但是小明由于自身太菜,没有办法和老板谈借钱的事情

但是小明很聪明,他认识老板身边的秘书,然后他就通过和这个秘书沟通,将借钱的事情想秘书说清楚,秘书进而去向老板借钱

整条链路,小明达到了借钱的目的,老板的钱也被借出去了,可是,老板不知道到底是谁在借钱,只知道钱给了秘书

这就是正向代理,一般是用在客户端侧,是属于客户端的代理,能够帮助客户端访问自身无法访问的服务器资源

正向代理的使用场景

  • 可以突破客户端自身的访问限制
  • 可以提高访问服务器的速度
  • 可以隐藏客户端的真实 IP

第一点和第三点,通过上面借钱的例子,大家比较好理解,正向代理服务器是帮助客户端去访问服务器,服务器并不知道具体的客户端是谁

提高访问服务器的速度如何理解?

一般情况下,正向代理服务器上面都会设置一个硬件缓冲区,并且会将客户端的部分请求放到缓冲区中

当有其他客户端进来访问的时候,正向带来服务器就可以将缓冲区中的数据给到客户端,进而提高访问速度

反向代理

反向代理也是一个位于客户端和目标服务器之间的服务器

反向代理就是指以代理服务器来接收互联网上的连接请求,然后将这些请求转发给内部的多个服务器

并将从服务器上得到的结果返回给互联网上请求的对应客户端,这个时候的代理服务器就是一个反向代理服务器

还是一个借钱的例子

老板想把钱借出去,但是老板自己懒得去找借钱的人,于是他就将钱给到某机构,让这个机构把自己的钱借出去

这个时候,小明仍然缺钱,于是找到了某机构借钱,小明借到的这个钱,其实是老板的,但是小明不会知道这个钱具体是谁的,他只知道是机构借给他的

这就是反向代理,一般是用在服务端侧,是属于服务端的代理,一般是用来做服务端的负载均衡

反向代理的应用场景也就不言而喻了吧,与上面正向代理相对的也有如下几点:

  • 可以做负载均衡
  • 可以提高访问服务器的速度
  • 可以隐藏服务端的真实 IP
  • 可以做服务器的安全保障

前三点都比较好理解,第一点上一篇文章说过,那么第四点如何理解呢?

外部的请求都是先过代理服务器,再到内部服务器上的,那么在代理服务器上面就可以做一些安全的能力,例如 防 DDOS , IP 白名单,加密的能力等等

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

看了上述的例子对于正向代理和反向代理的区别,我们再来简单的对比一下

正向代理,属于客户端代理,服务端不知道到底是谁访问自己

反向代理,用于服务端,属于服务端代理,客户端不知道自己具体是访问的哪个服务器

当看到正向代理和反向代理的时候,咱们想想借钱的案例就懂了

今天就到这里,学习所得,若有偏差,还请斧正

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是阿兵云原生,欢迎点赞关注收藏,下次见~

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

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

相关文章

Android系统的问题分析笔记(4) - Android设备硬件基础

问题 典型的Android手机/平板硬件架构是怎么样的? 1 典型Android手机/平板硬件架构图 2 基带处理器 (Baseband Processor) 市场上大多数的手机采用了相互独立的处理单元来分别处理用户界面软件和射频功能。即:应用处理器 (Application Processor&#…

5年积淀,Mapmost打造连接无限的数字孪生平台

数字孪生是充分利用物理模型、传感器更新、运行历史等数据,集成多学科、多物理量、多尺度、多概率的仿真过程,在虚拟空间中完成映射,从而反映相对应的实体装备的全生命周期过程。在“数字中国”、“实景中国”战略指导下,数字孪生…

【Redis】IO多路复用机制

IO多路复用的概念 IO多路复用其实一听感觉很高大上,但是如果细细的拆分以下, IO:网络IO,操作系统层面指数据在内核态和用户态之间的读写操作。 多路:多个客户端连接(连接就是套接字描述符,即Socket) 复用&…

什么是零知识证明?

零知识证明(Zero Knowledge Proof,以下简称ZKP)是一种加密学中的重要技术,它可以让一个人向另一个人证明某个事情是真的,而不需要透露这个事情的具体内容,即不需要泄露任何信息。ZKP 技术可以在不牺牲隐私的…

难见的oracle 9i恢复---2023年----惜分飞

时过境迁,以前恢复大量oracle 8/9版本的库,现在一套oracle 9i的库都比较稀奇了.今天恢复客户一套9.2.0.6的aix环境rac库,通过分析确认主要问题: 1. 重建控制文件,resetlogs库遗漏数据文件 2. 数据库启动主要报错ORA-600 2663和ORA-600 kclchkblk_4 Tue Nov 8 09:…

Python dshelper:动动鼠标,搞定数据探索!

本次分享一个Python数据探索小工具dshelper,适合快速查看数据基本特征、数据可视化等使用场景。 无需代码,自动完成数据集描述统计; 无需代码,界面点鼠标绘制多种统计图: 支持命令行、jupyter notebook、docker三种…

RK3588平台开发系列讲解(进程篇)Linux 进程的数据结构

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、Linux 进程的数据结构二、创建 task_struct 结构三、Linux 进程地址空间四、Linux 进程文件表沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 本篇将介绍 Linux 如何表示进程。 一、Linux 进程的数据结构…

Java测试:OJ练习(字符串合并后返回按照先后顺序排列的不重复新字符串、合并数组并按升序排列、Arrays 类中的sort方法)

1、给定一个长度为n的字符 串,字符串中只包含大小写字母。 请你返回该字符串拥有那些字符。 并将它们按照出现的先后!顺序拼接成一个新的字符串。 这是我最开始写的,代码有点问题: public String setString(String str) {char[]…

文本三剑客之——Awk

Awk Awk简介Awk语法格式Awk常见内置变量Awk实例演示按行输出文本BEGIN模式和END模式按字段输出文本通过管道,双引号调用shell命令date 的用法getline的用法awk数组 Awk简介 Awk是一个功能强大的编辑工具,用于在Linux/UNIX 下对文本和数据进行处理。数据…

代码随想录算法训练营第六天|242.有效的字母异位词 、349. 两个数组的交集 、202. 快乐数、1. 两数之和

哈希表的表示方式:数组、set、map 数组:范围可控的情况下,可以用数组 set:哈希值较大的情况下,或数值分布很分散的情况 map:key 和 value对应的情况下 能用数组尽量用数组,因为数组会比较快&…

Netty内存管理

关键概念 PoolArena——内存管理的统筹者 PoolArena是内存管理的统筹者。它内部有一个PoolChunkList组成的链表 PoolChunkList——对PoolChunk的管理 PoolChunkList内部有一个PoolChunk组成的链表。通常一个PoolChunkList中的所有PoolChunk使用率(已分配内存/ChunkSize)都在…

机器学习算法分类

机器学习常用算法的分类: 根据数据集组成不同,可以把机器学习算法分为: 监督学习无监督学习半监督学习强化学习 1、监督学习 - 定义: - 输入数据是由输入特征值和目标值所组成 - 函数的输出可以是一个连续的值(称为回…

【文本三剑客】AWK

AWK 一、AWK的工作原理1.1命令格式1.2awk常见的内建变量 二、awk实验2.1按行输入文本2.2按字段输出文本2.3通过管道符、双引号调用shell命令 一、AWK的工作原理 逐行读取文本,默认以空格或tab键为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中&…

银行数字化转型导师坚鹏:银行数字化转型面临的5大机遇与4大挑战

在机遇方面,主要面临以下5大机遇: 国家战略及政策机遇:乡村振兴战略、制造强国战略、绿色金融战略等战略的落实将会给银行数字化转型带来新的业务机遇,《中国银保监会关于推动银行业和保险业高质量发展的指导意见》、《关于银行业…

第五章 面向对象-4abstract抽象

1.4 abstract class抽象类 声明抽象类&#xff0c;使用关键字abstract //内部匿名类 Db db new Db(){ };3.了解抽象类 抽象方法 AbstractClassMain.java /** Copyright (c) 2017, 2023, zxy.cn All rights reserved.**/ package cn.practice2;/*** <p>Description:&…

Chatgpt中文版无需代理,ChatGPT镜像

Chatgpt中文版无需代理 网站ChatGPT中文版 ChatGPT中文版是一个基于人工智能技术的聊天机器人&#xff0c;它可以模拟人类的自然语言交互&#xff0c;回答用户的各种问题和提供各种服务。它的核心技术是GPT&#xff08;Generative Pre-trained Transformer&#xff09;模型&am…

基础:Android相关基础知识

目录 1.Android 四大组件 2.Activity生命周期 3.Service的生命周期 4.Service的启动方式 5.Activity的启动模式 6.广播的分类 7.ANR是什么&#xff0c;怎么避免&#xff1f; 8.Handler消息处理机制 9.事件分发机制 10.View绘制流程 11.Binder机制 12.进程间通信 1…

2023最新一键开通主机免费源码

更新了ui 自助开通主机&#xff0c;自己修改服务器 不带接口&#xff0c;不带接口&#xff0c;不带接口 打开api.php文件&#xff0c;把8.8.8.8改服务器ip&#xff0c;123456改成你的密钥 前往我的技术博客查看更多https://202271.xyz/?zhuji 蓝奏云链接 https://wwp.lanz…

如何在Linux中显示网络连接、路由表、接口统计等信息?Netstat了解一下!

Netstat 是一个用于显示网络连接、路由表、接口统计等信息的命令行工具。它在 Linux 和其他类 Unix 系统中都有提供&#xff0c;可以帮助我们分析和诊断网络问题。本文将介绍 Netstat 命令的基本用法和常见选项。 Netstat 命令的语法 Netstat 命令的基本语法如下&#xff1a; …