博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
彻底理解正向代理和反向代理
阅读量:2002 次
发布时间:2019-04-28

本文共 840 字,大约阅读时间需要 2 分钟。

转载自 

平时工作中我们会接触到各种代理,它到底是什么概念呢,又是什么工作原理,下面我们具体来分析一下。


1、概念


正向代理

这个很好理解,比如说你现在要访问一个外国的社交网站www.facebook.com,根据天朝的政策这个网站正常来访问是打不开的,也就是通常所说的被“墙”了,你需要翻越这块围墙才能看到外面的世界,俗称翻墙。你可以通过购买别人的VPN或者自己搭建代理服务器去实现访问这个网站,原理就是通过这个代理服务器去访问你想访问的网站,代理服务器就是客户端和目标服务器之间的跳板,代理服务器接收客户端的请求并发送到目标服务器,同时接收目标服务器的应答结果并返回给客户端,起到一个中介的作用。这就是所谓的正向代理,一般我们通过设置网络连接VPN代理即可。


反向代理

再拿www.facebook这个网站举例,然后如果它指向的IP是10.1.2.33。如果你现在是在美国或者其他能访问这个网站的国家,又或者你现在通过正向代理能访问了这个网站,我们知道这个网站是全球性的社交网站,它肯定不是一台服务器在工作,背后肯定是一堆服务器在支撑这个网站,即使我们访问www.facebook.com这个网站,它也不一定去ip10.1.2.33发送真实请求,它可能会发到其他的ip上面去,这个过程是网站内部的转发的我们看不到。整个过程我们不需要做任何设置,直接访问域名获取数据,这就是反向代理,nginx就是反向代理中间件。


2、区别


下面通过一张图来看清楚正向代理和反向代理的区别

  1. 正向代理需要设置代理服务器信息,反向代理不需要任何配置

  2. 正向代理指向目标ip地址,而反向代理则不一定。

  3. 正向代理是客户端到服务器端的转发代理,反向代理是网站内部负载均衡做的集群请求转发。

  4. 正向代理一般用于提供无墙外网访问,反向代理是将防火墙后面的服务器作为服务提供给外面的客户端访问。

  5. 正向代理客户端知道是连的代理服务器,反向代理后面的服务器对客户端来说是完全透明的,客户端不知道自己连的具体是哪台服务器。

你可能感兴趣的文章
iOS应用内付费(IAP)开发步骤列表
查看>>
iOS-TextField知多少
查看>>
用javascript协助导入图片
查看>>
白话 Ruby 与 DSL 以及在 iOS 开发中的运用
查看>>
获取任意线程调用栈的那些事
查看>>
主线程中也不绝对安全的 UI 操作
查看>>
深入研究 Runloop 与线程保活
查看>>
Swift 4迁移总结:喜忧参半,新的起点
查看>>
iOS 版本更新(强制更新)检测问题
查看>>
项目在iOS11上遇到的小问题
查看>>
Python 简单入门指北(一)
查看>>
iOS开发基础知识--碎片1
查看>>
iOS开发UI篇—IOS开发中Xcode的一些使用技巧
查看>>
学习小结
查看>>
HTTPS
查看>>
iOS开发网络篇—监测网络状态
查看>>
李洪强实现横向滚动的View<一>
查看>>
iOS开发拓展篇—音频处理(音乐播放器6)
查看>>
李洪强实现横向滚动的View<二>
查看>>
iOS开发拓展篇—应用之间的跳转和数据传递
查看>>