Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >终于有人把正向代理和反向代理解释的明明白白了!

终于有人把正向代理和反向代理解释的明明白白了!

作者头像
Java团长
发布于 2019-04-25 08:52:32
发布于 2019-04-25 08:52:32
114.3K37
举报

来源:漫话编程(ID:mhcoding)

周末,我正在网上搜索简历,准备给团队招聘新人。这时候,女朋友回来了,看起来并不是很高兴。

反向代理(reverse proxy):是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

正向代理

正向代理(forward proxy):是一个位于客户端和目标服务器之间的服务器(代理服务器),为了从目标服务器取得内容,客户端向代理服务器发送一个请求并指定目标,然后代理服务器向目标服务器转交请求并将获得的内容返回给客户端。

这种代理其实在生活中是比较常见的,比如访问外国网站技术,其用到的就是代理技术。

有时候,用户想要访问某国外网站,该网站无法在国内直接访问,但是我们可以访问到一个代理服务器,这个代理服务器可以访问到这个国外网站。这样呢,用户对该国外网站的访问就需要通过代理服务器来转发请求,并且该代理服务器也会将请求的响应再返回给用户。这个上网的过程就是用到了正向代理。

这个过程其实和租房子很像。

租房子的时候,一般情况下,我们很难联系到房东,因为有些房东为了图方便,只把自己的房屋信息和钥匙交给中介了。而房客想要租房子,只能通过中介才能联系到房东。而对于房东来说,他可能根本不知道真正要租他的房子的人是谁,他只知道是中介在联系他。

这里面一共有三个角色,租客(用户)、中介(代理服务器)和房东(国外网站,目标服务器)。引入中介(代理服务器)的原因是用户无法联系上房东(用户无法访问国外网站)。

所以,正向代理,其实是"代理服务器"代理了"客户端",去和"目标服务器"进行交互。

通过正向代理服务器访问目标服务器,目标服务器是不知道真正的客户端是谁的,甚至不知道访问自己的是一个代理(有时候中介也直接冒充租客)。

正向代理的用途

突破访问限制

通过代理服务器,可以突破自身IP访问限制,访问国外网站,教育网等。

即,租客可以通过中介,来解决无法联系上房东的问题。

提高访问速度

通常代理服务器都设置一个较大的硬盘缓冲区,会将部分请求的响应保存到缓冲区中,当其他用户再访问相同的信息时, 则直接由缓冲区中取出信息,传给用户,以提高访问速度。

即,中介手里留存了很多房源信息和钥匙,可以直接带租客去看房。

隐藏客户端真实IP

上网者也可以通过这种方法隐藏自己的IP,免受攻击。

即,房东并不知道租客的真实身份。PS:但是中介知道了,可能骚扰更多….

反向代理

反向代理(reverse proxy):是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

我们在租房子的过程中,除了有些房源需要通过中介以外,还有一些是可以直接通过房东来租的。用户直接找到房东租房的这种情况就是我们不使用代理直接访问国内的网站的情况。

还有一种情况,就是我们以为我们接触的是房东,其实有时候也有可能并非房主本人,有可能是他的亲戚、朋友,甚至是二房东。但是我们并不知道和我们沟通的并不是真正的房东。这种帮助真正的房主租房的二房东其实就是反向代理服务器。这个过程就是反向代理。

对于常用的场景,就是我们在Web开发中用到的负载均衡服务器(二房东),客户端(租客)发送请求到负载均衡服务器(二房东)上,负载均衡服务器(二房东)再把请求转发给一台真正的服务器(房东)来执行,再把执行结果返回给客户端(租客)。

所以,反向代理,其实是"代理服务器"代理了"目标服务器",去和"客户端"进行交互。

通过反向代理服务器访问目标服务器时,客户端是不知道真正的目标服务器是谁的,甚至不知道自己访问的是一个代理。

反向代理的用途

隐藏服务器真实IP

使用反向代理,可以对客户端隐藏服务器的IP地址。

即,租客并不房东知道的真实身份。

负载均衡

反向代理服务器可以做负载均衡,根据所有真实服务器的负载情况,将客户端请求分发到不同的真实服务器上。

即,二房东发现房主本人很忙,于是找到房主的妻子帮忙处理租房事宜。

提高访问速度

反向代理服务器可以对于静态内容及短时间内有大量访问请求的动态内容提供缓存服务,提高访问速度。

即,二房东同样有房屋信息和钥匙。

提供安全保障

反向代理服务器可以作为应用层防火墙,为网站提供对基于Web的攻击行为(例如DoS/DDoS)的防护,更容易排查恶意软件等。还可以为后端服务器统一提供加密和SSL加速(如SSL终端代理),提供HTTP访问认证等。

即,二房东可以有效的保护房东的安全。

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

虽然正向代理服务器和反向代理服务器所处的位置都是客户端和真实服务器之间,所做的事情也都是把客户端的请求转发给服务器,再把服务器的响应转发给客户端,但是二者之间还是有一定的差异的。

1、正向代理其实是客户端的代理,帮助客户端访问其无法访问的服务器资源。反向代理则是服务器的代理,帮助服务器做负载均衡,安全防护等。

2、正向代理一般是客户端架设的,比如在自己的机器上安装一个代理软件。而反向代理一般是服务器架设的,比如在自己的机器集群中部署一个反向代理服务器。

3、正向代理中,服务器不知道真正的客户端到底是谁,以为访问自己的就是真实的客户端。而在反向代理中,客户端不知道真正的服务器是谁,以为自己访问的就是真实的服务器。

4、正向代理和反向代理的作用和目的不同。正向代理主要是用来解决访问限制问题。而反向代理则是提供负载均衡、安全防护等作用。二者均能提高访问速度。

PS:本文的特殊形式只是为了更加通俗易懂的讲解知识。

(完)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java团长 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
37 条评论
热度
最新
讲的真好解决了我多年的困惑
讲的真好解决了我多年的困惑
回复回复5举报
反向代理的比喻很恰当,因为直到签合同,租客都不知道真房东是谁。但是正向的其实并不对,中介只是处理中间事宜,房屋中介最终是介绍租客和房东认识的,
反向代理的比喻很恰当,因为直到签合同,租客都不知道真房东是谁。但是正向的其实并不对,中介只是处理中间事宜,房屋中介最终是介绍租客和房东认识的,
442举报
那他锁我ip咋办 用正向代理不就是想隐藏我的ip 真实信息么
那他锁我ip咋办 用正向代理不就是想隐藏我的ip 真实信息么
回复回复点赞举报
不应该是锁的是代理商的 ip 吧 不然 挂vpn 很多时候访问不了 ChatGPT 换个代理 ip 就好使。
不应该是锁的是代理商的 ip 吧 不然 挂vpn 很多时候访问不了 ChatGPT 换个代理 ip 就好使。
回复回复点赞举报
查看全部4条回复
讲的太好了,通俗易懂,配图很有趣,谢谢作者
讲的太好了,通俗易懂,配图很有趣,谢谢作者
回复回复1举报
问一个问题哈,在《Linux高性能服务器》游双 第四章里面讲了一个案例,在客户端上设置环境变量http_proxy的名称,这应该算是“在客户端上架设”,算正向代理。但是从客户端发出的IP数据报的目的IP却是代理服务器的IP,对客户端隐藏了web服务器的真实IP,这么看又算是反向代理。所以怎么判断呢?
问一个问题哈,在《Linux高性能服务器》游双 第四章里面讲了一个案例,在客户端上设置环境变量http_proxy的名称,这应该算是“在客户端上架设”,算正向代理。但是从客户端发出的IP数据报的目的IP却是代理服务器的IP,对客户端隐藏了web服务器的真实IP,这么看又算是反向代理。所以怎么判断呢?
111举报
设置一个http_proxy的名称就算在客户端架设了?按照翻墙的例子,需要在客户端上安装软件,软件的作用是将主机和代理服务器之间建立一个通信隧道,只设置一个http_proxy名称,只是代表主机知道代理服务器,主机和代理服务器之间没有建立通信隧道。所以这是反向代理
设置一个http_proxy的名称就算在客户端架设了?按照翻墙的例子,需要在客户端上安装软件,软件的作用是将主机和代理服务器之间建立一个通信隧道,只设置一个http_proxy名称,只是代表主机知道代理服务器,主机和代理服务器之间没有建立通信隧道。所以这是反向代理
回复回复1举报
非常好
非常好
回复回复点赞举报
可以滴
可以滴
回复回复点赞举报
太棒啦
太棒啦
回复回复点赞举报
终于明白了正向代理和反向代理,好文
终于明白了正向代理和反向代理,好文
回复回复点赞举报
讲的太好了,特地登陆点个赞
讲的太好了,特地登陆点个赞
回复回复点赞举报
突然觉得用代理律师比喻好理解多了: 客户端访问服务器 = 个人状告公司, 个人请了个律师(正向代理) ,公司有个律师(反向代理) 正向代理: 我明确告哪个公司,由代理律师去写申请打官司 (代理律师代替个人出面) 反向代理:公司被告了,老总不站出来,让代理律师去回应(代理律师出面隐藏公司boss)
突然觉得用代理律师比喻好理解多了: 客户端访问服务器 = 个人状告公司, 个人请了个律师(正向代理) ,公司有个律师(反向代理) 正向代理: 我明确告哪个公司,由代理律师去写申请打官司 (代理律师代替个人出面) 反向代理:公司被告了,老总不站出来,让代理律师去回应(代理律师出面隐藏公司boss)
33点赞举报
从你举的例子我可不可以理解为正向代理就是中介代理租户跟房东沟通,反向代理就是还是这个中介代表中介所在的公司跟租户沟通(但租户并不知道对面是房东还是托管公司)
从你举的例子我可不可以理解为正向代理就是中介代理租户跟房东沟通,反向代理就是还是这个中介代表中介所在的公司跟租户沟通(但租户并不知道对面是房东还是托管公司)
回复回复点赞举报
你说的中介是双向代理,我认为是没错的,但在常说的网络中,客户端-网络-服务端,中间是网络,我们说的正反向代理分别代理客户端-网络,网络-服务端. 如果你所说的介质能同时处理客户端和服务端,代替中间部分,那就是双向代理了
你说的中介是双向代理,我认为是没错的,但在常说的网络中,客户端-网络-服务端,中间是网络,我们说的正反向代理分别代理客户端-网络,网络-服务端. 如果你所说的介质能同时处理客户端和服务端,代替中间部分,那就是双向代理了
回复回复点赞举报
查看全部3条回复
加载更多
推荐阅读
编辑精选文章
换一批
Reverse Proxy(反向代理)
反向代理(reverse proxy):是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
泽霖
2023/11/14
3940
《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(15)-Charles如何配置反向代理
在App开发的过程当中,抓包是一个很常见的需求,而有些app的请求不会在网络设置代理时被抓到数据包,这里若是需要抓包就需要搭建反向代理。
北京-宏哥
2023/04/27
1.6K0
《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(15)-Charles如何配置反向代理
彻底理解正向代理和反向代理
平时工作中我们会接触到各种代理,它到底是什么概念呢,又是什么工作原理,下面我们具体来分析一下。 1、概念 正向代理 这个很好理解,比如说你现在要访问一个外国的社交网站www.facebook.com,根据天朝的政策这个网站正常来访问是打不开的,也就是通常所说的被“墙”了,你需要翻越这块围墙才能看到外面的世界,俗称翻墙。你可以通过购买别人的VPN或者自己搭建代理服务器去实现访问这个网站,原理就是通过这个代理服务器去访问你想访问的网站,代理服务器就是客户端和目标服务器之间的跳板,代理服务器接收客户端的请求并发送
Java技术栈
2018/03/29
1.5K0
正向代理与反向代理详解
正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器)。为了从目标服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转发请求,将获得的内容返回给客户端。正向代理的情况下,客户端必须要进行一些特殊的设置才能使用。
PHP开发工程师
2022/05/09
12.3K0
正向代理与反向代理详解
什么是正向代理,正向代理和反向代理对比
正向代理和反向代理都是常见的代理服务器,它们在网络中起着不同的作用。在介绍正向代理之前,我们先来了解一下代理服务器。
玖叁叁
2023/04/12
4320
正向代理和反向代理
代理按主要服务的角色分成2种,正向代理和反向代理,正向代理代理的是客户端,反向代理代理的是服务器。典型拓扑结构如下:
数据小冰
2022/08/15
5080
正向代理和反向代理
架构01-什么是反向代理,什么又是正向代理?
说起Nginx,我们都知道它可以用来做反向代理。那么,到底什么是反向代理,对应的正向代理又是什么呢?这篇文章就带大家来了解一下。其中反向代理也是系统架构的重要组成部分。
程序新视界
2021/03/22
6750
架构01-什么是反向代理,什么又是正向代理?
nginx必知必会
nginx相对于apache来说是轻量级,同样是web服务,比apache占用内存及资源更少,抗并发方面也是,nginx处理请求是异步非阻塞的,而apache则是阻塞型的,在高并发下nginx能保持高性能,但是nginx有一些不足,他在健康检查方面只能通过端口来检测,不支持url来检测,并且支持的协议比较少,
summerking
2022/09/19
5660
快速了解正向代理与反向代理
比如访问某些国外网站,可能需要购买vpn,并且vpn是在用户浏览器端设置的(并不是在远端的服务器设置)。浏览器先访问vpn地址,vpn地址转发请求,并最后将请求结果原路返回来。
全菜工程师小辉
2019/08/28
6740
快速了解正向代理与反向代理
理解正向代理与反向代理的区别
我们介绍了Nginx主要用来做反向代理,可能有些朋友并不很清楚什么是反向代理,本篇文章会介绍下反向代理和正向代理的不同之处: (一)正向代理 正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器)。为了从原始服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转交并且将获得的内容返回给客户端。正向代理的情况下客户端必须要进行一些特别的设置才能使用。 图示如下: 举个例子: 小说里面有一些杀手组织,有钱人可以雇佣杀手帮其办事,这里面的杀手就相当于是一个正向代
企鹅号小编
2018/02/06
1K0
理解正向代理与反向代理的区别
简单理解正向代理和反向代理
上一篇文章说到反向代理是用来做负载均衡的,同时我就想到了那么正向代理是不是也可以说一说,可能还是有很多人是弄不清他俩的区别是什么的吧?
阿兵云原生
2023/09/01
2970
简单理解正向代理和反向代理
反向代理与正向代理
编程行业经常会看到反向代理与正向代理这两个名词。甚至有时候面试,面试官会直接问你会不会配置项目反向代理实现项目负载均衡,提升后台服务的性能。
蛋蛋编程手记
2022/12/12
3510
正向代理和反向代理的区别
今天说一下老生常谈的问题,正向代理和反向代理的区别?几年前也看过这个问题,也是一个常见的面试题,不过最近去面试时候,竟然也被问到这个问题。所以本博客整理一下资料,尽量写得通俗易懂一些。
SmileNicky
2022/05/07
6360
正向代理和反向代理的区别
正向、反向代理区别【转载】
这种代理其实在生活中是比较常见的,比如访问谷歌网站技术,其用到的就是代理技术。//上次分享的谷歌访w助s就是这个
勤奋的思远
2021/02/23
4320
正向代理与反向代理
定义:正向代理是位于客户端和目标服务器之间的服务器,客户端通过代理服务器来访问目标服务器。
GeekLiHua
2025/01/21
1340
图解正向代理和反向代理的区别_nginx配置多个正向代理
套用古龙武侠小说套路来说,代理服务技术是一门很古老的技术,是在互联网早期出现就使用的技术。一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术。常用的代理技术分为正向代理、反向代理和透明代理。本文就是针对这三种代理来讲解一些基本原理和具体的适用范围,便于大家更深入理解代理服务技术。
全栈程序员站长
2022/09/27
5.9K0
图解正向代理和反向代理的区别_nginx配置多个正向代理
正向代理与反向代理
  正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器)。为了从原始服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转交并且将获得的内容返回给客户端。正向代理的情况下客户端必须要进行一些特别的设置才能使用。
一觉睡到小时候
2019/07/04
4780
正向代理与反向代理
Nginx正向代理与反向代理 负载均衡
Nginx #1 什么是正向代理 正向代理类似一个跳板机,代理访问外部资源 举个例子: 我是一个用户,我访问不了某网站(用户知道该网站的服务器地址),但是我能访问一个代理服务器,这个代理服务器
Autooooooo
2020/11/09
8740
Nginx正向代理与反向代理 负载均衡
linux下正向代理/反向代理/透明代理使用说明
代理服务技术对于网站架构部署时非常重要的,一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术。 常用的代理技术分为正向代理、反向代理和透明代理。以下就是针对这三种代理的一些基本原理和具体的适用范围的说明: 正向代理(Forward Proxy) 一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术。关于正向代理的概念如下: 正向代理(forward)是一个位于客户端【用户A】和原始服务器(origin server)【服务器B】之间的服务器【代理服务器Z】
洗尽了浮华
2018/01/22
1.7K0
linux下正向代理/反向代理/透明代理使用说明
前端必须了解Nginx正向代理和反向代理
上篇文章主要分享了公众号的开发流程及开发过程中需要注意的事项。今天分享一些关于Nginx配置的相关知识点,主要内容是正向代理和反向代理。
terrence386
2022/07/14
1K0
前端必须了解Nginx正向代理和反向代理
相关推荐
Reverse Proxy(反向代理)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档