图解正向代理和反向代理

套用古龙武侠小说套路来说,代理服务技术是一门很古老的技术,是在互联网早期出现就使用的技术。一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术。常用的代理技术分为正向代理、反向代理和透明代理。本文就是针对这三种代理来讲解一些基本原理和具体的适用范围,便于大家更深入理解代理服务技术。

一、正向代理(Forward Proxy)
一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术。关于正向代理的概念如下:
正向代理(forward)是一个位于客户端【用户A】和原始服务器(origin server)【服务器B】之间的服务器【代理服务器Z】,为了从原始服务器取得内容,用户A向代理服务器Z发送一个请求并指定目标(服务器B),然后代理服务器Z向服务器B转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。如下图1.1
在这里插入图片描述
从上面的概念中,我们看出,文中所谓的正向代理就是代理服务器替代访问方【用户A】去访问目标服务器【服务器B】
这就是正向代理的意义所在。而为什么要用代理服务器去代替访问方【用户A】去访问服务器B呢?这就要从代理服务器使用的意义说起。
使用正向代理服务器作用主要有以下几点:
1、访问本无法访问的服务器B,如下图1.2
在这里插入图片描述
我们抛除复杂的网络路由情节来看图1.2,假设图中路由器从左到右命名为R1,R2
假设最初用户A要访问服务器B需要经过R1和R2路由器这样一个路由节点,如果路由器R1或者路由器R2发生故障,那么就无法访问服务器B了。但是如果用户A让代理服务器Z去代替自己访问服务器B,由于代理服务器Z没有在路由器R1或R2节点中,而是通过其它的路由节点访问服务器B,那么用户A就可以得到服务器B的数据了。
现实中的例子就是“翻墙”。不过自从***技术被广泛应用外,“翻墙”不但使用了传统的正向代理技术,有的还使用了***技术。

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

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

4、客户端访问授权
这方面的内容现今使用的还是比较多的,例如一些公司采用ISA SERVER做为正向代理服务器来授权用户是否有权限访问互联网,挼下图1.3
在这里插入图片描述
图1.3防火墙作为网关,用来过滤外网对其的访问。假设用户A和用户B都设置了代理服务器,用户A允许访问互联网,而用户B不允许访问互联网(这个在代理服务器Z上做限制)这样用户A因为授权,可以通过代理服务器访问到服务器B,而用户B因为没有被代理服务器Z授权,所以访问服务器B时,数据包会被直接丢弃。
5、隐藏访问者的行踪
如下图1.4 我们可以看出服务器B并不知道访问自己的实际是用户A,因为代理服务器Z代替用户A去直接与服务器B进行交互。如果代理服务器Z被用户A完全控制(或不完全控制),会惯以“肉鸡”术语称呼。
在这里插入图片描述
(图1.4)

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

二、反向代理(reverse proxy)
反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。
使用反向代理服务器的作用如下:
1、 保护和隐藏原始资源服务器
如下图2.1在这里插入图片描述
用户A始终认为它访问的是原始服务器B而不是代理服务器Z,但实用际上反向代理服务器接受用户A的应答,从原始资源服务器B中取得用户A的需求资源,然后发送给用户A。由于防火墙的作用,只允许代理服务器Z访问原始资源服务器B。尽管在这个虚拟的环境下,防火墙和反向代理的共同作用保护了原始资源服务器B,但用户A并不知情。
2、 负载均衡
如下图2.2在这里插入图片描述
当反向代理服务器不止一个的时候,我们甚至可以把它们做成集群,当更多的用户访问资源服务器B的时候,让不同的代理服务器Z(x)去应答不同的用户,然后发送不同用户需要的资源。
当然反向代理服务器像正向代理服务器一样拥有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
在这里插入图片描述
(图3.1)

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

和传统代理服务器可以保护浏览器安全一样, 反向代理服务器也具有保护网站安全的作用,来自互联网的访问请求必须经过代理服务器,相当于在Web 服务器和可能的网
络攻击之间建立了一个屏障。
除了安全功能, 代理服务器也可以通过配置缓存功能加速Web 请求。当用户第一次
访问静态内容的时候, 静态内容就被缓存在反向代理服务器上, 这样当其他用户访问该
静态内容的时候, 就可以直接从反向代理服务器返回,加速Web 请求响应速度, 减轻Web服务器负载压力。事实上, 有些网站会把动态内容也缓存在代理服务器上,比如维基百科及某些博客论坛网站, 把热门词条、帖子飞博客缓存在反向代理服务器上加速用户访问速度, 当这些动态内容有变化时,通过内部通知机制通知反向代理缓存失效, 反向代理会重新加载最新的动态内容再次缓存起来。
此外,反向代理也可以实现负载均衡的功能,而通过负载均衡构建的应用集群可以
提高系统总体处理能力, 进而改善网站高并发情况下的性能。

原文:https://blog.51cto.com/z00w00/1031287

其他不错文章分享:

https://www.cnblogs.com/Anker/p/6056540.html

https://blog.csdn.net/m13666368773/article/details/8060481

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

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

相关文章

代理,正向代理和反向代理

1. 代理 代理也被叫做网络代理,是一种比较特殊的网络服务,允许一个终端(通常指客户端)通过这个服务与另一个终端(通常指服务器端)进行非直接的连接。 例如:一些网关、路由器等网络设备都具备网…

反向代理,正向代理,网关

反向代理,正向代理,网关 正向代理与反向代理,正向与反向是如何区分的?反向代理在系统架构中的应用场景: 正向代理与反向代理,正向与反向是如何区分的? 正向与反向的目标是客户端,是…

2、正向代理和反向代理(正向代理(客户端),反向代理(服务器))

正向代理和反向代理(正向代理(客户端),反向代理(服务器)) 1、正向代理:(代理客户端) 说个例子(访问外网):我们的客户端先…

正向代理 / 反向代理

1. 正向代理 正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须设置正向代理服务器,当然前提是要知道正…

chatgpt赋能python:Python中的JWT解码(Decode)

Python中的JWT解码(Decode) 什么是JWT(JSON Web Token)? JSON Web Token(JWT)是目前最流行的 Web 身份验证方案之一。JWT 是基于 JSON 的开放标准,它可以让客户端和服务器之间传递…

对接支付宝php版easysdk接口分享

在网上没有找到支付宝easysdk接口的对接详细说明,自己一步一步的摸索,其中使用chatgpt的帮助作用不少。 根据官方给的文档 需要执行composer require alipaysdk/easysdk:^2.0安装sdk。如果你的项目已经安装过其它扩展,可以先把vendor文件夹备…

记录第一次利用chatgpt 实现RSA加密解密编程

1,下载Cursor软件 2,左侧文件栏目新建一个first.java 3,在编辑区输入“//使用RSA公私钥实现JWT令牌的签名和验签”,并且连续输入两个回车(相当于调用CtrlK) AI会自动生成代码,点击“Accept al…

ChatGPT | Word文档如何更好地提取表格内容给ChatGPT

本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处! Word文档如何更好地提取表格内容给ChatGPT做知识库,这属于文本预处理工作。 本文只讲思路、测试结果,技术实现用Python和Java都能完成,下一篇文章再贴源码…

分享一个淘宝/天猫/京东/阿里 图片抓取工具

链接:https://pan.baidu.com/s/1lbTL8UNQr4o45Z30J_YGLA提取码:xr3z 复制这段内容后打开百度网盘手机App,操作更方便哦 转载于:https://www.cnblogs.com/ForStudyAlways/p/11212591.html

利用python爬取淘宝的商品图片

代码 from selenium import webdriver from selenium.webdriver.common import keys import time import requests import random# 创建浏览器 def functions():browser webdriver.Chrome(rG:\taobao\chromedriver.exe)# 让浏览器打开淘宝browser.get("https://www.taob…

JavaScript实现淘宝商品展示(鼠标放在小图片上,上面会出现相应的大图片)

最终效果&#xff1a; 代码部分&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8" /><meta name"viewport" content"widthdevice-width, initial-scale1"><title>图片放大效果</title&…

html转化成图片,相当于生成海报,长按保存到手机

html <div class"tab-con" id"erweima"><div class"erweima-box"><div class"erweima"><div class"top"><span>扫码支付</span><span>排队免单</span></div><di…

淘宝图片服务器的学习

一、淘宝网的困境 对于淘宝网这样的大型电子商务网站&#xff0c;对于图片服务的要求特别的高。而且对于卖家来说&#xff0c;图片远胜于文字描述&#xff0c;因此卖家也格外看重图片的显示质量、访问速度等问题。根据淘宝网的流量分析&#xff0c;整个淘宝网流量中&#xff0c…

用ChatGPT/midjourney生成创意营销图片素材,产品图、虚拟主播、终端店铺图

营销素材对应的关键词库&#xff08;3个&#xff09;&#xff1a; 元素、风格、AI绘画工具midjourney 提问模板&#xff1a; 第一步&#xff0c;先预设场景&#xff0c;询问应该包含的关键词范围 假设你是一位世界一流水平的设计师&#xff0c;你想要使用AI绘画工具midjourn…

仿淘宝的详情页图片切换

鼠标放在小图片上&#xff0c;上面的大图会切换到相应的图片 html代码&#xff1a; css代码&#xff1a; js代码&#xff1a; 完整代码&#xff1a; <!DOCTYPE html><html lang"en"> <head> <meta charset"utf-8"> …

html css js肝撸淘宝官网代码(淘宝web端官网页面+部分js功能实现)

大家好&#xff0c;我是梅巴哥er。本篇是我写的一个练习&#xff0c;淘宝首页。用html, css, js写的。交互功能只写了一部分&#xff0c;仅供学习参考。如想下载源码&#xff0c;请移步https://github.com/guozi007a/taobao-homepage.git我传到github上了。在这个页面点Code选项…

ChatGPT对于普通人有什么机会和影响?

ChatGPT爆火“出圈”&#xff0c;短短三个月里&#xff0c;势如破竹。 月活已经达到1亿&#xff0c;什么概念呢&#xff1f;Tiktok在海外达到1亿月活用了将近9个月时间&#xff0c;Instagram用了大约2年半&#xff0c;就连比尔盖茨都表示“Web3没那么重要&#xff0c;元宇宙没…

ChatGPT爆火,真有那么神?

近来&#xff0c;人工智能聊天机器人ChatGPT实火。上线仅仅2个月&#xff0c;ChatGPT的活跃用户就突破一亿&#xff0c;曾创下无数增长奇迹的TikTok都望尘莫及。连比尔盖茨都没忍住承认&#xff1a;ChatGPT出现的意义&#xff0c;不亚于互联网和个人电脑的诞生。 ChatGPT真有那…

震惊!火爆全网的ChatGPT背后使用的数据库居然是……

摘要&#xff1a;ChatGPT承认了自己背后使用的数据库是Cassandra。 OpenAI最近发布的AI驱动的智能聊天机器人ChatGPT在互联网上掀起了一阵风暴&#xff0c;热衷于尝试这一新AI成果的网民不在少数。ChatGPT针对网友广泛的问题提供了非常有针对性的回答&#xff0c;其不可思议的能…

赛狐ERP率先引入ChatGPT 一键生成优质Listing

最近被火遍全球的ChatGPT刷屏了&#xff0c;作为以人工智能技术驱动的自然语言处理工具&#xff0c;它正在用一种新的方式改变着我们的工作和生活。为了更好地赋能卖家&#xff0c;赛狐ERP研发团队快速响应市场需求&#xff0c;率先引入了ChatGPT技术&#xff0c;基于亚马逊畅销…