告诉你什么叫做代理

admin 发布于 2021-05-16 阅读(362)

  一般情况下如果没有特别说明代理技术默认说的是正向代理技术。关于正向代理的概念如下 正 向代理(forward)是一个位于客户端【用户A】和原始服务器(origin server)【服务器B】之间的服务器【代理服务器Z】为了从原始服务器取得内容用户A向代理服务器Z发送一个请求并指定目标(服务器B)然后代 理服务器Z向服务器B转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。如下图1.1

  从上面的概念中我们看出文中所谓的正向代理就是代理服务器替代访问方【用户A】去访问目标服务器【服务器B】

  这就是正向代理的意义所在。而为什么要用代理服务器去代替访问方【用户A】去访问服务器B呢这就要从代理服务器使用的意义说起。

  我们抛除复杂的网络路由情节来看图1.2假设图中路由器从左到右命名为R1,R2假 设最初用户A要访问服务器B需要经过R1和R2路由器这样一个路由节点如果路由器R1或者路由器R2发生故障那么就无法访问服务器B了。但是如果用户 A让代理服务器Z去代替自己访问服务器B由于代理服务器Z没有在路由器R1或R2节点中而是通过的路由节点访问服务器B那么用户A就可以得到服 务器B的数据了。现实中的例子就是“翻 墙”。不过自从VPN技术被广泛应用外“翻墙”不但使用了传统的正向代理技术有的还使用了VPN技术。

  这种说法目前不像以前那么流行了主要是带宽流量的飞速发展。早期的正向代理中很多人使用正向代理就是提速。还是如图1.2 假设用户A到服务器B经过R1路由器和R2路由器而R1到R2路由器的链路是一个低带宽链路。而用户A到代理服务器Z从代理服务器Z到服务器B都是高带宽链路。那么很显然就可以加速访问服务器B了。

  Cache缓存技术和代理服务技术是紧密联系的不光是正向代理反向代理也使用了Cache缓存技术。还如上图所示如果在用户A访问服务器B某数据J之前已经有人通过代理服务器Z访问过服务器B上得数据J那么代理服务器Z会把数据J保存一段时间如果有人正好取该数据J那么代理服务器Z不再访问服务器B而把缓存的数据J直接发给用户A。这一技术在Cache中术语就叫Cache命中。如果有更多的像用户A的用户来访问代理服务器Z那么这些用户都可以直接从代理服务器Z中取得数据J而不用千里迢迢的去服务器B下载数据了。

  这方面的内容现今使用的还是比较多的例如一些公司采用ISA SERVER做为正向代理服务器来授权用户是否有权限访问互联网挼下图1.3

  图 1.3防火墙作为网关用来过滤外网对其的访问。假设用户A和用户B都设置了代理服务器用户A允许访问互联网而用户B不允许访问互联网这个在代理服 务器Z上做限制这样用户A因为授权可以通过代理服务器访问到服务器B而用户B因为没有被代理服务器Z授权所以访问服务器B时数据包会被直接丢 弃。

  如下图1.4 我们可以看出服务器B并不知道访问自己的实际是用户A因为代理服务器Z代替用户A去直接与服务器B进行交互。如果代理服务器Z被用户A完全控制或不完全控制会惯以“肉鸡”术语称呼。

  我 们总结一下 正向代理是一个位于客户端和原始服务器(origin server)之间的服务器为了从原始服务器取得内容客户端向代理发送一个请求并指定目标(原始服务器)然后代理向原始服务器转交请求并将获得的内 容返回给客户端。客户端必须设置正向代理服务器当然前提是要知道正向代理服务器的IP地址还有代理程序的端口。

  反向代理正好与正向代理相反对于客户端而言代理服务器就像是原始服务器并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求接着反向代理将判断向何处(原始服务器)转交请求并将获得的内容返回给客户端。 使用反向代理服务器的作用如下

  用户A始终认为它访问的是原始服务器B而不是代理服务器Z但实用际上反向代理服务器接受用户A的应答从原始资源服务器B中取得用户A的需求资源然后发送给用户A。由于防火墙的作用只允许代理服务器Z访问原始资源服务器B。尽管在这个虚拟的环境下防火墙和反向代理的共同作用保护了原始资源服务器B但用户A并不知情。

  当反向代理服务器不止一个的时候我们甚至可以把它们做成集群当更多的用户访问资源服务器B的时候让不同的代理服务器Zx去应答不同的用户然后发送不同用户需要的资源。

  当然反向代理服务器像正向代理服务器一样拥有CACHE的作用它可以缓存原始资源服务器B的资源而不是每次都要向原始资源服务器B请求数据特别是一些静态的数据比如图片和文件如果这些反向代理服务器能够做到和用户X来自同一个网络那么用户X访问反向代理服务器X就会得到很高质量的速度。这正是CDN技术的核心。如下图2.3

  我们并不是讲解CDN所以去掉了CDN最关键的核心技术智能DNS。只是展示CDN技术实际上利用的正是反向代理原理这块。

  反向代理结论与正向代理正好相反对于客户端而言它就像是原始服务器并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求接着反向代理将判断向何处(原始服务器)转交请求并将获得的内容返回给客户端就像这些内容原本就是它自己的一样。

  基本上网上做正反向代理的程序很多能做正向代理的软件大部分也可以做反向代理。开源软件中最流行的就是squid既可以做正向代理也有很多人用来做反向代理的前端服务器。另外MS ISA也可以用来在WINDOWS平台下做正向代理。反向代理中最主要的实践就是WEB服务近些年来最火的就是Nginx了。网上有人说NGINX不能做正向代理其实是不对的。NGINX也可以做正向代理不过用的人比较少了。

  如果把正向代理、反向代理和透明代理按照人类血缘关系来划分的话。那么正向代理和透明代理是很明显堂亲关系而正向代理和反向代理就是表亲关系了 。

  透明代理的意思是客户端根本不需要知道有代理服务器的存在它改编你的request fields报文并会传送真实IP。注意加密的透明代理则是属于匿名代理意思是不用设置使用代理了。 透明代理实践的例子就是时下很多公司使用的行为管理软件。如下图3.1

  用户A和用户B并不知道行为管理设备充当透明代理行为当用户A或用户B向服务器A或服务器B提交请求的时候透明代理设备根据自身策略拦截并修改用户A或B的报文并作为实际的请求方向服务器A或B发送请求当接收信息回传透明代理再根据自身的设置把允许的报文发回至用户A或B如上图如果透明代理设置不允许访问服务器B那么用户A或者用户B就不会得到服务器B的数据。

  。除了可以防止外网对内网服务器的恶性攻击、缓存以减少服务器的压力和访问安全控制之外,还可以进行负载均衡,将用户请求分配给多个服务器。 反向

  服务器,安装在目的主机端,主要用于转发客户机请求,后台有多个http服务器提供服务,nginx的功能就是把请求转发给后面的服务器,决定哪台目标主机来处...

  其实本质很好理解,网络上那些花里胡哨的解释一律不用管,我们要抓住精髓:就是增强一个对象的功能。打个比方买火车票,12306的app就是一个

  服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向

  传入的所有接口,并在每一个实现的接口方法中调用InvocationHandler的invoke方法,在这个方法中需要我们将自己所需要的逻辑加入进去,这样就给

  每一个实现的方法都套用上了相同的逻辑,达到减少代码松耦合的效果。 当一个或多个接口的实现方法中都需要套用上相同的逻辑就可以直接使用动态

  大纲 前言 ProxyBroker简介 ProxyBroker安装 在终端使用ProxyBroker 在代码中使用ProxyBroker 总结 前言 写爬虫的小伙伴可能遇到过这种情况: 正当悠闲地喝着咖啡,满意地看着屏幕上的那一行行如流水般被爬下来的数据时,突然一个Error弹出,提示抓不到数据了... 然后

  反复检查,确信自己代码莫得问题之后,发现居然连浏览器也无法正常访问网页了... 难道是网站被我爬瘫痪了? 然后

  我们在做爬虫的过程中经常会遇到这样的情况,最初爬虫正常运行,正常抓取数据,一切看起来都是那么美好,然而一杯茶的功夫可能就会出现错误,比如403 Forbidden,这时候打开网页一看,可能会看到“您的IP访问频率太高”这样的提示。出现这种现象的原因是网站采取了一些反爬虫措施。比如,服务器会检测某个IP在单位时间内的请求次数,如果超过了这个阈值,就会直接拒绝服务,返回一些错误信息,这种情况可以称为封...

  br /转载: 扫盲篇: br /br /br /

  看到最近“微服务架构”这个概念这么火,作为一个积极上进的程序猿,成小胖忍不住想要学习学习。而架构师老王(不是隔壁老王)最近刚好在做公司基础服务的微服务化研究和落地,对此深有研究。 于是成小胖马上屁颠屁颠的跑过去向老王请教:“王哥,我看微服务架构这么火,我也想学,您给我讲讲啥是微服务架构呗?” 老王笑了笑说:“要想知道

  服务器,并在一个BSD-like协议下发行。由俄罗斯的程序设计师lgor Sysoev所开发。 国内使用nginx网站用户有:百度、京东、新浪、

  的反向不知道如何理解,经过百度知道,再结合下面这幅图,总算弄清楚一点了。简单的说从一个局域网出来到服务端为正向,从客户端要进入一个局域网为反向 概念: 反向

  服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时

  模式: amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;简而言之就是:为其他对象提供一种

  CSDN开发者助手由CSDN官方开发,集成一键呼出搜索、万能快捷工具、个性化新标签页和官方免广告四大功能。帮助您提升10倍开发效率!

  是Java语言中非常经典的一种设计模式,也是所有设计模式中最难理解的一种。本文将通过一个简单的例子模拟JDK动态

  没有学习过的知识点或概念。如果恰好遇到了这些知识盲点,请先去学习这部分知识,再来阅读这篇文章。

  服务器的概念 随着Internet技术的迅速发展,越来越多的计算机连入了Internet。很多公司也将自己公司的局域网接入了Internet。如何快速地访问Internet站点,提高网络的安全性,成为了当今的热门话题。在这种情况下,

标签:  做代理 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。