小白理解: 

网关:大家都知道,从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关。顾名思义,网关(Gateway  就是一个网络连接到另一个网络的“关口”。也就是网络关卡 。网关可以是软件,路由器,服务器等。

DNS---域名系统:它作为将域名IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。这个是由运营商来提供的。

代理服务器: 代理服务器是网络信息的中转站,代理服务器大多被用来连接INTERNET(国际互联网)和INTRANET(局域网)。提高访问速度。一般可以进行访问控制和信息安全控制。这个是看你自己是否购买这个服务器的。

上图是使用小明同学捡到小红同学的钱的实例来说明一条http请求过程需要走那些流程。

小明同学捡到钱后,自己不能一个人去找失主,就同父母说,父母让他去警察局问问有没有人丢钱(相当于根据域名去查询ip地址),得到那个小区丢钱的信息后,直接过去(根据ip地址去),但是到小区门口就不知道家住在哪里,所以找居委会阿姨(如果代理服务器已经存在缓存中的数据直接返回,没有数据,代理服务器会直接和服务器联系获取数据),居委会阿姨发现没有她位置,就找小红同学的家长,小红同学家长带他们找到正在找钱的小红同学,小红同学找到丢失的钱(数据被找到)。

 

 

代理服务器与反向代理服务器之间的区别:

正向代理:

场景:我需要访问一个服务器C,但是由于某些原因我无法访问到它,(典型的就是你翻墙,然后failed了),可是我就是控制不住自己,这个时候,服务器B告诉我,来吧,你想要什么,我来帮你传话,于是,我把自己的请求给了B,B接收到之后,帮我转给了C,(因为B和C之间的线路是畅通的),C把返回结果给了B,B非常友好地把结果又还给了我,我觉得太好用了简直,于是我周围的小伙伴都开始将请求发给B,通过B的转发,来获取C的信息,这个时候对于服务器C,C只知道是B发了请求过来,不知道我们这群小伙伴的存在,所以这就是代理。

 

反向代理:

场景:我向B发送了一个请求,B对我的请求进行分析,发现我请求的是文章详情,于是B将请求转发给处理文章详情的应用服务器C1,我又向B发了一个请求,B解析之后,发现请求的是我的声望值等个人信息,于是B将请求转发给专门处理个人信息的应用服务器C2,就这样,我不在乎我要请求的数据是在C1,C2,还是C3上,我只需要发送请求到B就可以了,B会对我的请求进行解析,决定转发请求给Cx来处理,并得到处理结果后返回给我。

代理在大家平常生活的翻墙中应该用过很多了,反向代理则是许多大公司业务处理过程中的经典方式,前端由一个nignx负责根据用户的请求信息转发请求给后端相应的应用服务器(这个过程中也可以加入负载均衡)。

 

https请求:

 


 


附赠:

CDN与VPN:

CDN:CDN的全称是Content Delivery Network,即内容分发网络,它能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。CDN的工作流程与DNS解析息息相关,它只是在DNS解析流程中加入了智能DNS(调度DNS)这一步骤,当客户发出网络请求时,智能DNS服务器会根据你的IP地址判断出你的位置,然后返回最近距离的服务器的IP地址,而不是直接返回源站IP。

VPN:

虚拟专用网络(VPN)是在公共网络中建立的专用网络,并且数据通过公共网络中的安全“加密信道”传输。VPN的核心就是在利用公共网络(互联网)建立虚拟私有网,利用VPN服务器进行远程访问。VPN可以通过特殊的加密的通讯协议在连接在Internet上的位于不同地方的两个或多个企业内部网之间建立一条专有的通讯线路,就好比是架设了一条专线一样,但是它并不需要真正的去铺设光缆之类的物理线路。

举个栗子说明一下区别:

沃尔玛如果要保障全国都有自己的连锁店可不是件很容易的时候,所以他们通常会找一个在全国范围内都做代理的代理商。这个角色就是CDN(Content Delivery Network,即内容分发网络)。

这样的连锁店代理商,他们在全国甚至全世界都有自己的大楼,它们有着巨大的仓库,保存了从沃尔玛总站运来的所有货物。如果有就近的客户光顾,就把货物提供给他们;如果这个货物在当前仓库不存在,则需要从沃尔玛总站运过来。并且,这个代理商不仅可以代理沃尔玛超市,还可以代理图书馆,甚至咖啡店和医院。

CDN也是同样的道理,他们在全国甚至全世界都有自己的机房(或者叫做CDN边缘节点)。每个节点上都缓存了最近访问的资源,如果有访问则可以快速响应;如果访问者所需资源不存在,则CDN需要从“源站”拉取资源(即下图中知乎的主站地址)。当然,这里缓存的资源是可以无限下载的,而不是像沃尔玛的鸡蛋会被买光。

我们可以看出CDN的主要好处,是帮助源站将资源分发到全世界各地;而实际上,CDN的另外一个用途是可以帮助源站分担访问压力。

那么我们通常听到另一个词汇,VPN(Virtual Private Network)又是什么呢?试想一下,如果全市范围内沃尔玛就只有一个超市,那么怎么让全市居民快速来到这里呢?没错,是超市巴士。VPN就类似于超市巴士,可以迅速的将访问者接入服务端附近的网络。

CDN与VPN显然是有区别的。CDN的作用是将服务端的体验做得更好,而客户端并不需要知道服务端在哪里,是怎么做的,这也叫反向代理;VPN则是让客户端能够统一接入,而服务端并不需要知道客户端在哪里,只要知道他们被拉近了,这也叫正向代理。

 

 

 

 

 

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐