首页 > 其他分享 >反向代理和正向代理区别

反向代理和正向代理区别

时间:2023-04-18 14:34:13浏览次数:33  
标签:请求 代理 反向 正向 客户端 服务端 大厨

反向代理和正向代理区别

转载:https://www.cnblogs.com/taostaryu/p/10547132.html

一 什么是代理

代理其实就是一个中介,A和B本来可以直连,中间插入一个C,C就是中介。
刚开始的时候,代理多数是帮助内网client访问外网server用的
后来出现了反向代理,"反向"这个词在这儿的意思其实是指方向相反,即代理将来自外网客户端的请求转发到内网服务器,从外到内

代理,字面意义上来说,他就是相当于一个中间人这么个概念。

正向代理:

把整个流程比如成去饭店吃饭,我们也就是用户(客户端)去饭店吃饭(发送一个请求),你知道你要吃的是鱼香肉丝(请求),可是你不能自己做,那么就需要让大厨(服务端)给你做,可是去了饭店,大厨是在后台的,你也不能直接去告诉大厨,因为你没有权限(服务端在后台)这时候就需要服务员(代理)来帮忙告诉说某某某客户(客户端)要一盘鱼香肉丝(请求/访问资源)大厨(服务端)收到给做好然后交给服务员(代理)服务员拿到鱼香肉丝(资源/响应)给客户(用户端)送回来。

好,简单的流程结束。这样大家明白代理的作用了吧。

反向代理:

继续比喻,说我们(客户端)今天要在你饭店吃一个大闸蟹(请求),服务员(代理)收到这个请求发现大厨做不了这个大闸蟹,可是又需要挣钱,这怎么办呢?服务员这么一想,隔壁那家饭店可以做,而我也和那家大厨(另一个服务端)有交集,那我去让另一家大厨给做怎么样?好。于是服务员就去告诉另一家大厨说你帮我做一个大闸蟹(请求)吧,隔壁大厨说好呀,可以。就做好交给服务员。那么这个时候,这个服务员(反向代理)就成为了反向代理,因为他去调用别的服务端。这个时候我们(客户端)通常来说是没必要知道这大闸蟹怎么来的,只要有就好。

注意:

那这个服务员是谁都可以当的吗?肯定不可以呀,所以这个服务员(代理)需要在饭店任职(配置)之后才可以。也就是代理需要配置。

那么反向代理需要吗?答案是不需要的

那么反向代理的优点就体现出来了,我不需要配置,而且我不仅只能在一家调用请求,我可以向多个服务端去发出请求。而且反向代理还可以向多台后端服务器进行负载平衡。

二 正向代理

正向代理类似一个跳板机,代理访问外部资源

比如我们国内访问谷歌,直接访问访问不到,我们可以通过一个正向代理服务器,请求发到代理服,代理服务器能够访问谷歌,这样由代理去谷歌取到返回数据,再返回给我们,这样我们就能访问谷歌了

img

正向代理的用途:

  (1)访问原来无法访问的资源,如google

​ (2) 可以做缓存,加速访问资源

  (3)对客户端访问授权,上网进行认证

  (4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

三 反向代理

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

img

反向代理的作用:

(1)保证内网的安全,阻止web攻击,大型网站,通常将反向代理作为公网访问地址,Web服务器是内网

(2)负载均衡,通过反向代理服务器来优化网站的负载

四 总结

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

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

看图理解一:

img

看图理解二:

img

正向代理中,proxy和client同属一个LAN,对server透明;
反向代理中,proxy和server同属一个LAN,对client透明。
实际上proxy在两种代理中做的事都是代为收发请求和响应,不过从结构上来看正好左右互换了下,所以把后出现的那种代理方式叫成了反向代理

总结:

正向代理: 买票的黄牛

反向代理: 租房的代理

标签:请求,代理,反向,正向,客户端,服务端,大厨
From: https://www.cnblogs.com/duanshuwei/p/17329399.html

相关文章

  • 软件行业迫切需要基于正向生成的编码模型
    逆向生成难以实现飞跃软件行业长期面临生产率瓶颈。程序员的工作强度已经接近极限,要继续提高软件交付速度似乎难上加难。近年来在开发流程和工具上,如GPT显然提供了一定的提效,但是实质上没有改变软件开发的基本模式————逆向生成。目前软件项目的大部分工作时间都花在理解“现......
  • ASEMI代理ADAU1979WBCPZ原装ADI车规级ADAU1979WBCPZ
    编辑:llASEMI代理ADAU1979WBCPZ原装ADI车规级ADAU1979WBCPZ型号:ADAU1979WBCPZ品牌:ADI/亚德诺封装:LFCSP-40批号:2023+安装类型:表面贴装型引脚数量:40类型:车规级芯片ADAU1979WBCPZ特征四个4.5Vrms(典型)差分输入用于主时钟的片上锁相环(PLL)总谐波失真+噪声(THD+N):−95dB(典型......
  • python如何使用HTTP代理来提高速度
    如何使用代理IP以及如何提高速度是Python网络爬虫中的两个非常重要的问题。今天我们就来学习一下,到底应该Python代理IP到底应该如何使用并提升速度。Python代理IP的使用在进行网络爬虫时,我们经常需要使用代理IP来隐藏自己的真实IP或者访问其他国家或地区的网站。Python的re......
  • requests代理设置
    和urllib一样,多的介绍就不说了,直接上代码:importrequestsproxies={"http":"http://user:[email protected]:80","https":"http://10.10.1.10:1080",}requests.get("https://www.geekdigging.com/",proxies=proxies)......
  • 一段话理解正向代理和反向代理的区别
    正向代理和反向代理的区别 虽然正向代理服务器和反向代理服务器所处的位置都是客户端和真实服务器之间,所做的事情也都是把客户端的请求转发给服务器,再把服务器的响应转发给客户端,但是二者之间还是有一定的差异的。 1、正向代理其实是客户端的代理,帮助客户端访问其无法访问的......
  • requests如何不使用系统代理
    1.指定域名不使用代理importosimportrequestsos.environ['NO_PROXY']='stackoverflow.com'response=requests.get('http://www.stackoverflow.com')2.设置代理为Noneimportrequestsproxies={"http":None,"......
  • 理解Android系统的进程间通信原理(一)----RPC中的代理模式
    理解Android系统的进程间通信原理(一)----RPC中的代理模式Android系统中的进程间通信是通过一个轻量级的RPC(RemoteProcedureCall远程进程调用)和AIDL(AndroidInterfaceDefininationLanguage)规范来生成两个进程之间可以相互访问的代码。其中RPC是以接口方式来实现,客户端与被......
  • ASEMI代理ADAU1961WBCPZ-R7原装ADI车规级ADAU1961WBCPZ-R7
    编辑:llASEMI代理ADAU1961WBCPZ-R7原装ADI车规级ADAU1961WBCPZ-R7型号:ADAU1961WBCPZ-R7品牌:ADI/亚德诺封装:LFCSP-32批号:2023+引脚数量:32安装类型:表面贴装型ADAU1961WBCPZ-R7汽车芯片ADAU1961WBCPZ-R7特征24位立体声音频ADC和DAC:信噪比>98dB采样率从8kHz到96kHz低功率:17mW记录,18mW......
  • 爬取的数据存mysql中、加代理,cookie,header,加入selenium、布隆过滤器、scrapy-redis实
    上节回顾#1scrapy架构 -爬虫:写的一个个类-引擎: -调度器:排队,去重-下载器-pipline-下载中间件-爬虫中间件#2命令 -scrapystartproject项目名-scrapygensipder爬虫名网址-scrapycrawl爬虫名字-run.py#......
  • 关于HTTP协议、爬虫技术和Socks5代理的一些重要概念和应用
      作为一名网络工程师和网络文章主编,我对网络技术和互联网发展趋势有着深刻的认识和了解。在本文中,我将重点探讨关于HTTP协议、爬虫技术和Socks5代理的一些重要概念和应用。  HTTP协议,即超文本传输协议,是目前互联网上最为常用的协议之一,它定义了客户端和服务器之间进行数据通......