正向代理和反向代理释义

代理

客户端 ====== 代理 ====== 服务端

对客户端而言,代理是服务端;对服务端而言,代理是客户端。这个很好理解吧,以祖孙三代关系为例,爸爸在儿子面前是爸爸,爸爸在爷爷面前是儿子。

无论是正向代理还是反向代理,代理总是在逻辑上位于客户端和服务端之间,充当二者通讯的媒介。

代理是叫正向代理还是叫反向代理,取决于它站那一边。站客户端一边的叫正向代理,站服务端一边的叫反向代理。

正向代理

客户端 == 代理 ========== 服务端

客户端花钱请的代理,它替客户端干活,以客户端的身份与服务端通讯。这种代理叫正向代理。

因为正向代理的存在,客户端躲在代理后面,不需要直接跟服务端通讯,具有隐藏客户端真实身份的效果,服务端不知道客户端的存在。

需要正向代理的场景主要有两个,以访问谷歌网站(服务端)为例:

  • 场景1:我(客户端)无法直接访问服务端,需要找一个代理才能间接访问到服务端
  • 场景2:我(客户端)可以直接访问服务端,但我不想让服务端知道我访问它,需要找一个代理代替我访问它(隐藏身份)

正向代理概念在历史上先于反向代理出现,当时就叫代理,直到反向代理概念出现之后,为了方便区分才改叫正向代理。现在如果不明确正向反向,通常还是指正向代理。

反向代理

客户端 ========== 代理 == 服务端

服务端花钱请的代理,它替服务端干活,以服务端的身份与客户端通讯。这种代理叫反向代理。

由于反向代理的存在,服务端躲在代理后面,不需要直接与客户端通讯,具有隐藏服务端真实身份的效果,客户端不知道服务端的存在。

反向代理的主要应用场景是:

  • 场景1:后台服务器很多,不想或不方便直接面对客户端,让反向代理服务器顶上去,可以更灵活的设计和变更服务端网络架构
  • 场景2:在墙外建立反向代理服务器,通过它间接访问服务端,墙只能看到我访问反向代理,看不到访问真实服务器(隐藏行为)

咦,根据我前面的定义,场景2里应该是正向代理啊——客户端花钱请的代理。所以大概率需要修正:谁花钱请的代理并不重要,代理的身份才重要。下文附MDN权威定义,应该更加准确和清晰。

MDN权威定义

https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling

There are two types of proxies: forward proxies (or tunnel, or gateway) and reverse proxies (used to control and protect access to a server for load-balancing, authentication, decryption or caching).

Forward proxies

A forward proxy, or gateway, or just “proxy” provides proxy services to a client or a group of clients. There are likely hundreds of thousands of open forward proxies on the Internet. They store and forward Internet services (like the DNS, or web pages) to reduce and control the bandwidth used by the group.

Forward proxies can also be anonymous and allow users to hide their IP address while browsing the Web or using other Internet services. For example, Tor routes internet traffic through multiple proxies for anonymity.

Reverse proxies

As the name implies, a reverse proxy does the opposite of what a forward proxy does: A forward proxy acts on behalf of clients (or requesting hosts). Forward proxies can hide the identities of clients whereas reverse proxies can hide the identities of servers. Reverse proxies have several use cases, a few are:

Load balancing: distribute the load to several web servers,
Cache static content: offload the web servers by caching static content like pictures,
Compression: compress and optimize content to speed up load time.

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

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

相关文章

Android14 InputManager-ANR原理

目标窗口查找时,作为派发目标的窗口必须已经准备好接收新的输入事件,否则判定窗口处于未响应状态,终止事件的派发过程,并在一段时间后再试。倘若5s后窗口仍然未准备好接收输入事件,将导致ANR。直接引发ANR的原因有很多…

操作系统学习记录

系统篇 内核 应用和底层硬件(CPU、内存、硬盘等)的连接桥梁。 用户态和内核态 CPU和进程可以在两种态下运行。 内核态可以直接访问所有硬件资源,用户态需要通过“系统调用”陷入到内核态才能否则只能访问用户空间地址的内存(虚…

P8630 [蓝桥杯 2015 国 B] 密文搜索

P8630 [蓝桥杯 2015 国 B] 密文搜索 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P8630 题目分析 基本上是hash的板子,但实际上对于密码串,只要判断主串中任意连续的八个位置是否存在密码串即可;那么我们…

PHP学习笔记1——html标签以及头部元素页面布局

html是一种超文本标识符号&#xff0c;用来在网页中指定显示页面格式显示 基本格式 <!doctype html> <html><head><title></title> </head><body> </body></html> 包含声明&#xff0c;框架html&#xff0c;头部head&a…

怎么把公众号文章链接做成二维码?扫码查看公众号推文的方法

公众号是现在给用户分享内容的一种方式&#xff0c;通过输出优质的公众号文章内容来为关注者提供信息和内容。当我们发布公众号文章后&#xff0c;有些情况下会需要将公众号内容生成二维码之后&#xff0c;印刷到传单、展板上来显示&#xff0c;那么如何将公众号的文章链接转二…

Commonjs 和 Es Module详解

一 前言 今天我们来深度分析一下 Commonjs 和 Es Module&#xff0c;希望通过本文的学习&#xff0c;能够让大家彻底明白 Commonjs 和 Es Module 原理&#xff0c;能够一次性搞定面试中遇到的大部分有关 Commonjs 和 Es Module 的问题。 带上疑问开始今天的分析&#xff1a; …

数字化转型导师坚鹏:城市数字化转型顶层规划方法

城市数字化转型顶层规划方法 课程背景&#xff1a; 很多城市存在以下问题&#xff1a; 不知道如何系统地开展数字化转型工作&#xff1f; 不清楚如何科学地制定数字化转型战略&#xff1f; 不知道如何高效地实施数字化转型战略&#xff1f; 课程特色&#xff1a; 有…

基于SpringBoot的在线拍卖系统设计与实现(源码+调试+LW+PPT)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于SpringBoot的在线拍…

C++编程知识

&#xff08;1&#xff09;把数组中的所有元素赋值为一个值 memset(arr,0x3f,sizeof(arr))//最大值 memset(arr,0,sizeof(distance));//赋值为0&#xff08;2&#xff09;找最大最小值的下标 int zuixiao-1//设置dist-1只是因为方便选取第一个数作为比较对象而已 for(i0;i<…

VSCode将某个字符替换为换行符并换行显示

不想每次去查了&#xff0c;我自己写博客记录一下~~~ 我的需求是一个一行的数据&#xff0c;用逗号分开&#xff0c;我希望竖着看有规律点&#xff0c;类似这样 快捷键其实想 optioncommandf &#xff0c;但是我每次都记不住&#xff0c;大家可以直接在编辑栏找到replace的地方…

vite 快速搭建 Vue3.0项目

一、初始化项目 npm create vite-app <project name>二、进入项目目录 cd ……三、安装依赖 npm install四、启动项目 npm run dev五、配置项目 安装 typescript npm add typescript -D初始化 tsconfig.json //执行命令 初始化 tsconfig.json npx tsc --init …

Unity Meta XR SDK 快捷配置开发工具【Building Block/Quick Action/OVRCameraRigInteraction】

文章目录 &#x1f4d5;教程说明&#x1f4d5;Building Block&#x1f4d5;Quick Action&#x1f4d5;OVRCameraRigInteraction 此教程相关的详细教案&#xff0c;文档&#xff0c;思维导图和工程文件会放入 Spatial XR 社区。这是一个高质量 XR 社区&#xff0c;博主目前在内…

【Swift】NSPopUpButton用法和示例

1.简介 NSPopUpButton 是 macOS 开发中常用的控件之一&#xff0c;它提供了一个弹出菜单&#xff0c;用户可以从中选择一个选项。NSPopUpButton 可以包含多个 NSMenuItem 对象&#xff0c;每个 NSMenuItem 表示一个选项。 2.常用方法 下面是一些 NSPopUpButton 的常用功能和…

进程线程的通信-day5

1、将互斥机制的代码实现重新敲一遍。 #include<myhead.h>//临界资源 int num520;//1、创建一个互斥锁变量 pthread_mutex_t mutex;void *task1(void *arg); void *task2(void *arg); int main(int argc, const char *argv[]) {//2、初始化互斥锁pthread_mutex_init(&am…

Shiro-14-subject 主体

理解Apache Shiro中的主题 毫无疑问&#xff0c;Apache Shiro中最重要的概念是主题。 “主题”只是一个安全术语&#xff0c;它指的是应用程序用户特定于安全的“视图”。Shiro主题实例代表了单个应用程序用户的安全状态和操作。 这些操作包括: 身份验证(登录) 授权(访问控…

了解JSON的作用及其方法

什么是json JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式采用完全独立编程语言的文本格式存储和表示数据&#xff08;就是字符串&#xff09;。它基于JavaScript语法&#xff0c;但可以被多种编程语言使用和解析。JSON以键值对的形式存…

高光谱图像降噪方法(2D Wavelet, 3D Wavelet, FORPDN, HyRes等方法)

近年来&#xff0c;随着遥感应用的不断深入&#xff0c;高光谱图像研究已经成为遥感领域发展最迅速的技术之一。与其他传统成像技术相比&#xff0c;高光谱图像具有更多优势&#xff1a;更丰富的信息量、纳米级的光谱分辨率以及范围更广且连续的光谱。因此&#xff0c;在农业、…

C#用反射实现两个类的对象之间相同属性的值的复制

目录 1.适用于创建实体的时候从一个实体作为数据源赋值 2.适用于没有创建实体&#xff0c;两个实体之间数据的转换 1.适用于创建实体的时候从一个实体作为数据源赋值 /// <summary> /// 反射实现两个类的对象之间相同属性的值的复制 /// 适用于初始化新实体 /// </…

选择VR全景行业,需要了解哪些内容?

近年来&#xff0c;随着虚拟现实、增强现实等技术的持续发展&#xff0c;VR全景消费市场得以稳步扩张。其次&#xff0c;元宇宙行业的高速发展&#xff0c;也在进一步拉动VR全景技术的持续进步&#xff0c;带动VR产业的高质量发展。作为一种战略性的新兴产业&#xff0c;国家和…

OJ_学生信息系统

题干 输入样例&#xff1a; 5 zhaoyi 70 80 90 240 qianer 65 32 77 174 sunsan 100 55 68 223 lisi 86 77 90 253 wangwu 100 59 66 225 输出样例&#xff1a; *[qianer] 65 32 77 *[sunsan] 100 55 68 *[wangwu] 100 59 66 lisi 86 77 90 zhaoyi 70 80 90 wangwu 100 59 6…