CDN的原理是什么?

CDN的原理是什么?这是一道前端面试非常高频的面试题,但是很多同学在面试时候只能说出个大概,老规矩,点赞收藏支持一下,给我一分钟,理想哥教大家该怎么满分回答这个问题

如果我是求职者,我会这么回答:

目前的互联网应用中都包含大量的静态内容,如果不做任何处理,所有的请求都指向源站服务器的话,不仅会耗费大量的带宽,还会拖累页面加载速度,影响用户体验。

CDN服务的出现可以解决上述问题。CDN的本质仍然是一个缓存,通过在现有网络中增加一层新的缓存节点,可以将数据缓存在里用户最近的地方,使用户以最快的速度获取数据,不需要每个用户的请求都去源站获取,避免网络拥塞、缓解源站压力。

比如,你住在东北,某网站源站服务器在深圳,如果没有CDN服务,那么每次数据请求都要长途跋涉到深圳的服务器,如果有CDN服务,就会在东北的CDN服务器上缓存一份数据,每次的数据请求就直接从东北的CDN服务器返回了,不用再大老远跑去深圳了。

当用户第一次发起内容请求时,不同地区的用户访问同一个域名,CDN服务商的智能DNS服务会返回不同CDN节点的IP地址。浏览器发起域名查询时,CDN 全局负载均衡设备根据用户 IP 地址,以及用户请求的内容URL,计算并返回离用户最近的相同网络运营商的CDN节点IP;

然后向边缘节点服务器发起请求,浏览器来请求内容数据,边缘节点会检测当前节点是否有数据,如果没有就去父级节点要数据,父级可能还会有父级节点,一直往上获取数据,如果还找不到就去源站服务器拿,并依次序返回,一个地区内只要有一个用户先加载资源,就会在CDN中建立缓存,该地区的其他后续用户都能直接读取缓存数据。

如果某个边缘节点可以找到,会先校验内容有效期,当确定有效期之后返回给用户。

用户后续再次发起请求时,会先去 CDN 缓存服务器获取。如果获取到数据,那么就直接返回。否则就重走一遍上面的流程

以上就是这个问题的回答了,大家可以下次面试时试试这么回答看看效果。

最后,关于关注理想哥,每天学点前端面试小技巧。#前端##前端滴滴##前端面试必备宝典#
全部评论
可以这么理解,一个CDN服务厂商在全国各地都有CDN服务器,我们访问域名的时候,会先访问到最近的CDN服务器,如果该服务器没有缓存,那么就会向域名原IP地址或者更上层的父级服务器进行查询,直到获取到数据,获取到后会在该CDN服务器缓存,下次该地区的用户再次访问该CDN的服务器,就可以直接获取到缓存,而不是长途跋涉地去访问真正的IP地址。
点赞 回复 分享
发布于 05-19 20:39 安徽
为什么我的八股文答案还提到了区域负载均衡设备和缓存服务器这两个概念
点赞 回复 分享
发布于 05-20 16:50 陕西
那国内访问国外网站是不是也是cdn加速,如何实现的呢
点赞 回复 分享
发布于 05-22 09:41 四川

相关推荐

一面:Java的库有哪些JUC的使用死锁如果一把锁 两个线程执行会死锁吗synchronizedCountDownLatchCompletableFutureJVM对哪些比较了解?设计模式:画一个你经常使用的问项目的问题手撕算法反问:业务+今日表现二面:怎么去做日志的打印?AOP怎么使用?布隆过滤器为什么就比分布式锁的性能好?怎么样保障数据的一致性?如果布隆过滤器失效的话?Java的库有哪些?五个任务的编排并等待五个任务都运行后,进行最终的结果处理?五个任务的串行执行怎么去设计?可以怎么使用线程池去做?synchronized A-> synchronized B synchronized B->synchronized  A会发生什么现象?死锁 ?synchronized A-> synchronized B-> synchronized C synchronized C -> synchronized B-> synchronized  A会发生什么现象?死锁?如果一把锁 两个线程执行会死锁吗?SynchronizedCountDownLatchCompletableFuturesleep()和wait()的区别JVM的内存分配是怎么样的?有哪些是在栈生成?哪些是在堆生成?int类型的字节数在32位机和64位机下有什么区别?各占多少字节数?long类型呢?手撕算法:最小公倍数三面:怎么理解MVC?具体在你的项目里是指哪些模块?你的项目是怎么设计的?怎么写的?有哪些流程?怎么理解JVM?大概讲讲对哪块比较熟?怎么理解Java这门语言?如何理解团队合作?觉得自己基础怎么样?有什么问题想问的?HR面:自我介绍评价一下自己是否接受异地实习说一下自己的一些缺点为什么学习Java?怎么理解Java的?平时怎么学习的?有什么问题想问的吗?面向对象:2025届毕业生,可使用此内推码:NTAAi5Z1. 官网投递进入校招官网,输入内推码进行:投递即可(1)云智校招官网:https://app-tc.mokahr.com/m/recommendation-apply/csig/6007?sharePageId=54604&recommendCode=NTAAi5Z&codeType=1#/recommendation/page/54604(2)云智内推码: NTAAi5Z2. 工作地点西安、武汉、长沙、重庆、厦门、大连3. Q&AQ:我可以投递几个岗位?A:每位同学可投递两个岗位(如后台开发-2025届校园招聘 & 客户端开发-2025届校园招聘),请同学们查看岗位描述,选择最适合的岗位进行投递。如同学在简历筛选后希望修改投递岗位,请通过邮箱或者云智校招QQ与我们联系。Q:之前投递过暑期实习岗位,秋招还能投递吗?A:可以,不影响秋招简历投递哦,快选择心仪的职位投递吧!Q:面试方式是什么?A:本次校园招聘以线上远程面试为主,在线上远程视频面试时,建议同学处于熟悉且安静的环境中,并提前检查摄像头、麦克风和耳机是否运行正常、网速达标且稳定等、安装最米哈游新版的腾讯会议或Chrome/QQ浏览器。面试安排若有任何变动,我们将第一时间通过短信或邮件告知。Q:我想调整面试时间或面试形式,应该联系谁?A:请尽量按时参与面试,如果临时有事或因不可抗力无法参加,可以通过邮箱或者云智校招QQ与我们联系,说明你的姓名、联系方式、调整原因以及可以调整的几个时间段。Q:如何查看我的面试进展?A:如需查询招聘进展,可点击【腾讯云智研发】微信公众号,在后台回复“校招进度”即可获得查询链接;也可以登录云智校招官网,进入“投递记录“查看招聘进展及面试情况。Q:云智与腾讯集团的关系是什么?A:云智全称腾讯云与智慧产业研发公司,简称“云智研发公司”。作为腾讯集团的子公司,云智由腾讯云与智慧产业事业群(CSIG)全面管理,与CSIG总部联合形成分布式研发的组织模式,推进云与产业互联网战略落地。Q:我们是腾讯员工吗?薪酬福利如何?A:云智研发公司是腾讯旗下的子公司,我们是腾讯子公司正式员工。云智研发公司独立运行,致力于为每一个加入团队的伙伴提供有保障和竞争力的薪酬福利、成长发展平台。投递的uu评论一下姓名缩写加岗位(HFG+产品经理),我会尽力跟进~经理),我会尽力跟进~公司正式员工。云智研发公司独立运行,致力于为每一个加入团队的伙伴提供有保障和竞争力的薪酬福利、成长发展平台。投递的uu评论一下姓名缩写加岗位(HFG+产品经理),我会尽力跟进~经理),我会尽力跟进~
腾讯云智研发
|
校招
|
超多精选岗位
点赞 评论 收藏
分享
评论
10
16
分享
牛客网
牛客企业服务