转自:
https://mp.weixin.qq.com/s/bHGxezDzhYNSB7XV44CKtQ
浏览器的网络请求
- 用户在浏览器中输入要访问的网址域名
- 浏览器向本地 DNS 服务器请求对该域名的解析
- 如果本地 DNS 服务器有该域名的解析结果,则直接响应用户请求并返回该域名对应的 IP 地址
- 如果本地 DNS 服务器没有该域名的解析结果,则会递归地向 DNS 系统请求解析,随后将结果返回给用户
- 浏览器得到域名解析结果(即域名对应的 IP 地址)
- 浏览器向服务器请求内容
- 服务器将用户的请求内容返回给浏览器
实际上,在第 6、7 这两步的时候,中间也经过了非常复杂的过程,我们可以将这个过程大致划分为 3 个主要节点。
网站服务器通过公网出口,再通过长途骨干网,最后通过用户的宽带光猫,到达用户所在的局域网,最终才到达用户电脑的浏览器。
其中长途骨干网的传输是最为耗时的,它需要经过网站服务器所在的机房、骨干网、用户所在城域网、用户所在局域网等,其物理传输距离非常遥远。
在这种情况下,如果传输的数据非常多,访问的用户量特别大,那么就容易出现长延时,影响用户的使用体验。同时,每请求一次数据都需要经过漫长的数据传输,对于长途骨干网来说,这都是一次负担。
当春节抢票时,我们都会登陆 12306 网站,网站上肯定有不少的图片资源。这时候可能同时会有 1 亿的用户,同时去请求一张一模一样的图片。如果这时候都按照上面的过程去请求一次图片数据,那么将会产生 1 亿次的网络数据传输。
CDN 就是内容分发网络,其英文全称为 Content Delivery Network。
简单来说,CDN 可以提前把数据存储在离用户最近的数据节点上,从而避免长途跋涉地经过长途骨干网,实现减少骨干网负担、提高访问速度的目的。
按照上面的场景,如果没有 CDN,每次请求都需要从网站服务器经过公网出口、长途骨干网、用户所在局域网,最终才到达浏览器。
当引入了 CDN 之后,请求过程就会发生变化。
浏览器请求图片数据时,会先去 CDN 缓存服务器中获取。如果成功获取到了数据,那么就直接返回。否则才会经过长途骨干网,最终到达网站服务器去获取图片数据。
那么只要提前在 CDN 缓存服务器上传图片,就可以极大地减少网络流量,同时减少网络延迟。
事实上 CDN 还缩短了请求数据的距离。
我们知道用户所处的位置可能是全国各地,为了能尽可能地减少网络传输的延时,一般都会在离用户较近的地方设置好 CDN 缓存服务器,这样各个地区的用户就可以直接请求对应的 CDN 服务器,而不需要来回跑大半个中国,极大地提高了效率。
因此,当我们说内容分发网络的时候,脑海里应该有这样一张图片:遍布全国各地的 CDN 缓存服务器,组成了我们的内容分发网络。用户的每次请求都会到离他最近的 CDN 服务器去请求数据,从而极大地提高了访问速度。
CDN 的工作原理
CDN 内容分发网络,本质上就是一大堆遍布在全球各个角落的缓存服务器,通过与 DNS 的配合,找到最靠近用户的一台 CDN 缓存服务器,然后把数据快速地分发给用户。
使用 CDN 服务的网站,只需要将域名解析权交给 CDN 服务商,并将需要分发的内容上传到 CDN,就可以实现内容加速了。
- 浏览器发起图片 URL 请求,经过本地 DNS 解析,将域名解析权交给域名 CNAME 所指向的 CDN 专用 DNS 服务器
- CDN 的 DNS 服务器将 CDN 的全局负载均衡设备的 IP 地址返回给浏览器
- 浏览器向 CDN 全局负载均衡设备发起 URL 请求
- CDN 全局负载均衡设备根据用户的 IP 地址、用户请求的 URL,选择一台用户所属区域内的区域负载均衡设备,并向其发起请求
- 区域负载均衡设备会为用户选择一台最合适的 CDN 缓存服务器(考虑的依据包括:服务器负载情况、距离用户的距离等),并返回给全局负载均衡设备
- 全局负载均衡设备将选中的 CDN 缓存服务器的 IP 地址返回给用户
- 用户向 CDN 缓存服务器发起请求,缓存服务器响应用户的请求,最终将用户所需要的内容返回给浏览器
原文链接:https://blog.csdn.net/qq_43665821/article/details/126276333?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171836857616800182185151%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171836857616800182185151&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-22-126276333-null-null.nonecase&utm_term=cdn%E7%B3%BB%E7%BB%9F
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/33641