CDN的原理是什么?

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

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

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

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

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

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

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

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

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

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

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

相关推荐

公司整体的氛围真的很好 也没有什么班味 大家都是像朋友一样相处 平常的福利也很多 比如周四的水果日! 前几天的元宵节还有活动 抽奖抽中了腰果 行政的小伙伴还煮了汤圆 公司的饭也很好吃啊 柠檬对应届生是第一年包住宿的 实习生异地实习也会提供两人一间的自如宿舍 真的很爱 大大节省了在京开支 并且都是通勤二十分钟就能到公司的距离 柠檬的招聘流程是我见过最快的 一般从投递到下offer只要一个星期左右 并且HR会贴心解答很多问题柠檬微趣2025届校招进行中【招聘动态】研发类、数据类、策划类三大岗位仍有较多机会,欢迎投递【关于我们】中国领先的手机休闲游戏开发商和运营商之一,研发发行的爆款游戏有《宾果消消消》、《浪漫餐厅》等,柠檬微趣已成为合成手游赛道全球收入最高发行商!【福利待遇】- 北京户口指标、一年免费住宿- 七险一金、丰厚年终奖、免费早晚餐- 带薪年假、带薪全员旅游、年度体检- 社团活动、生日礼物、水果下午茶⭐【内推链接】https://app.mokahr.com/su/lodoap【内推码】NTA0tU4(简历优先筛选,后续疑问/流程问题欢迎联系)大家投递完可以在评论区打上姓名缩写+岗位(比如PM+LJJ),我来确认有没有内推成功                                                                    
点赞 评论 收藏
分享
04-01 18:05
已编辑
门头沟学院 C++
bg本2硕9 非科班 一面(2h)(1)cpp基础系列:static关键字的用法和特性?局部变量用static修饰是什么效果?你提到保护性,隐藏性,具体是什么说法?新特型中怎么实现?手写一个单例模式。并讲解单例模式的代码(每个函数都讲解,详细讲解),有没有其他单例模式的写法。智能指针有哪些?有什么区别?怎么实现的weakptr?移动语义的一堆八股。静态库和动态库的区别?(没有深挖,可能是我嘚吧嘚说太多了,符号表,plt,got,延迟绑定,加载时机全说了)。(2)OS基础:进程线程有什么区别?(我结合自己理解说完,面试官问我还有呢?我基本说不上来了)(3)计算机网络:https,讲解一下加密的过程。加密的数学算法是什么?rsa的,ECDHE的。(4)项目拷打(20min~30min):非常细节,非常希望我了解底层算法(5)手撕:搜旋转数组二面(半小时)全程都是聊天形式,没啥面经,技术相关的问题主要体现在项目里,问了一点点安全方面的问题,SQL注入,xss,csrf,cookie。问到岗时间,还有一些自己和自己理解相关的内容。三面(40min)全程聊项目,出的场景题也都是项目相关的。问我非科班的身份,如何学习计算机知识,Linux,windows编程学习起来有什么区别,这种问题比较多。总体评价:面试官很耐心,在我有问题说的不对的时候甚至会直接向我讲解正确的回答是什么,但是也确实是压力面,对基础拷打得非常狠,面试题本身不刁钻,但是会一直深挖,而且回答案往往很难让面试官满意,总体来说是比较好的一次面试体验,面试官回答我的反问也很耐心,感谢wxg给我这次面试机会。碎碎念:洋洋洒洒打了很多字又删掉了。“春心莫共花争发,一寸相思一寸灰”
查看32道真题和解析
点赞 评论 收藏
分享
评论
10
16
分享

创作者周榜

更多
牛客网
牛客企业服务