最近写的东西愈来愈偏向Web程序员了···程序员
你想读懂本篇,就要知道什么是Web服务器——装在世界上某个机房里某台机器里某个操做系统里的一个,对外(公网或者你能访问)服务各类你须要的信息的软件!面试
它能够是Apache、Nginx、Tengine、IIS(滚)...服务器
没有多余的解释,四个字——科#学#上#网。网站
(什么?你不知道?)好吧。假设你上不了谷歌,N站,油管,91(滚)——你须要一个能上这些网站的玩意儿帮你上,而后让他把你想看的东西转给你,这个他能够是一我的,也能够是一台中间服务器,若是是一台中间服务器,那它就是所谓的“正向代理”。spa
题外话:当初我以为,正向代理就是 我~中间服务器~我真正想访问可是不能访问的服务器,那么 反向代理不就是:我真正想访问可是不能访问的服务器~中间服务器~我 了吗?这不就是服务器想偷个人数据?操作系统
总之这种“专业名词”还真不是一时半会儿能消化的,没办法,谁让某些面试官这么喜欢考呢?代理
正文:资源
先捋清楚什么是正向代理——或者说,反向代理是相对于正向代理的本质而言的。it
正向代理,通俗点说,就是中间服务器的功能是:跳板。反向代理
反向代理,通俗点说,就是中间服务器的功能是:前台服务员。
有什么区别?正向代理的本质就是,我但愿我!本身!能访问我不能访问,可是我知道我想访问的地方。
反向代理的本质就是:我但愿我访问某个地方的时候,它后面帮我干什么我不关心,我只关心前台能不能找到我想要的东西。
再用简单点的话说,正向代理,中间服务器帮“咱们”访问“咱们不能访问的地方(可是我知道我想访问哪里(谷歌N站))”
反向代理,中间服务器帮“咱们”寻找“我想要的东西(我不知道东西在哪里,可是中间服务器必定知道)”
从最终访问的资源信息所在地来讲,用正向代理访问谷歌,那么正向代理像个中介,谷歌才是我想找的人;
咱们访问百度网盘,百度会用反向代理帮咱们上传下载东西,而上传去哪里从哪里下载(具体到某个机房的某台电脑),咱们不知道,这个时候百度网盘的地址"pan.baidu.com/..."和后面的存储服务器是“一伙人”,这个地址就扮演了前台服务员的角色——和银行柜员很像。
有没有正反向代理一块儿用的时候呢?有。
综上所述,正向代理是我知道我要什么东西可是我要不到,托个家伙帮我(代购)——重要的是,商家并不知道真正想买东西的人是我;反向代理是某个室内装修施工队的头儿和他的马仔,这个时候若是我要找这个头儿帮我办点事,马仔十之八九知道是我想办点什么事情,而我不用知道帮我办事的马仔是谁,我只要管和头儿交流就能够了。
因此,反向代理不少状况是中间服务器和最终帮我干活的服务器是一伙人。
因此,正反向一块儿用,就是(我,科#学#上#网,用谷歌地图,谷歌地图反向代理帮我找到地图存储的地方并拼合起来返回给我,我本身不用找)
假设A是我,B是中间服务器,C是我想访问又访问不到的地方。
step1:A->C(不行)
step2:A->B(能够)发现 B->C(能够)
step3:A->(嘿B帮我上一下C)B->C
以上为正向代理,我(A)真正想访问的是C,不是你B,可是实际访问的是B。
假设A是我,B是我想访问并且能够访问的地方,C是B能访问可是我不知道的地方,可是我要的东西在C上。
step1:A->B(嘿B帮我个事儿呗)
step2:A->B(好嘞,我这就帮你)
step3:B->C(小C啊帮我整一下这事儿,待会快点给个结果我,外面等着要呢)(C:成,立刻)
step4:A(收到B的结果,其实是C的结果)
以上为反向代理,我(A)真正想访问的是B,不是C,虽然实际访问的是B,可是实际结果是C出来的——我殊不知道。
相同点:B都扮演了中介的角色,看起来都是B给A传递的数据,实际数据也都是C出来的;因此说,无论正向代理,反向代理,都是“代理(中介)”
不一样点:正向代理中A是知道C的存在的,并且认为C才是服务的提供者;反向代理中A认为为是B提供的服务,可是其实是C提供的服务。
本篇为我的向记录,若是有什么术语解释不对欢迎留言···