前端面试当中CDN会问啥------CDN详细教程来啦
⼀、CDN
1. CDN的概念
CDN(Content Delivery Network,内容分发⽹络)是指⼀种通过互联⽹互相连接的电脑⽹络系统,利 ⽤最靠近每位⽤户的服务器,更快、更可靠地将⾳乐、图⽚、视频、应⽤程序及其他⽂件发送给⽤户, 来提供⾼性能、可扩展性及低成本的⽹络内容传递给⽤户。
典型的CDN系统由下⾯三个部分组成:
A.分发服务系统:最基本的⼯作单元就是Cache设备,cache(边缘cache)负责直接响应最终⽤户的 访问请求,把缓存在本地的内容快速地提供给⽤户。同时cache还负责与源站点进⾏内容同步,把 更新的内容以及本地没有的内容从源站点获取并保存在本地。Cache设备的数量、规模、总服务能 ⼒是衡量⼀个CDN系统服务能⼒的最基本的指标。
B.负载均衡系统:主要功能是负责对所有发起服务请求的⽤户进⾏访问调度,确定提供给⽤户的最终 实际访问地址。两级调度体系分为全局负载均衡(GSLB)和本地负载均衡(SLB)。全局负载均衡主要根据⽤户就近性原则,通过对每个服务节点进⾏“最优”判断,确定向⽤户提供服务的cache的 物理位置。本地负载均衡主要负责节点内部的设备负载均衡
C.运营管理系统:运营管理系统分为运营管理和⽹络管理⼦系统,负责处理业务层⾯的与外界系统交 互所必须的收集、整理、交付⼯作,包含客户管理、产品管理、计费管理、统计分析等功能。
2. CDN的作⽤
CDN⼀般会⽤来托管Web资源(包括⽂本、图⽚和脚本等),可供下载的资源(媒体⽂件、软件、⽂档 等),应⽤程序(⻔户⽹站等)。使⽤CDN来加速这些资源的访问。
(1)在性能⽅⾯,引⼊CDN的作⽤在于: ⽤户收到的内容来⾃最近的数据中⼼,延迟更低,内容加载更快 部分资源请求分配给了CDN,减少了服务器的负载
(2)在安全⽅⾯,CDN有助于防御DDoS、MITM等⽹络攻击: 针对DDoS:通过监控分析异常流量,限制其请求频率 针对MITM:从源服务器到 CDN 节点到 ISP(Internet Service Provider),全链路 HTTPS 通信 除此之外,CDN作为⼀种基础的云服务,同样具有资源托管、按需扩展(能够应对流量⾼峰)等⽅⾯的 优势。
3. CDN的原理
CDN和DNS有着密不可分的联系,先来看⼀下DNS的解析域名过程,在浏览器输⼊ www.test.com 的 解析过程如下:
(1) 检查浏览器缓存
(2)检查操作系统缓存,常⻅的如hosts⽂件
(3)检查路由器缓存
(4)如果前⼏步都没没找到,会向ISP(⽹络服务提供商)的LDNS服务器查询
(5)如果LDNS服务器没找到,会向根域名服务器(Root Server)请求解析,分为以下⼏步: 根服务器返回顶级域名(TLD)服务器如 .com , .cn , .org 等的地址,该例⼦中会返回 .com 的 地址 接着向顶级域名服务器发送请求,然后会返回次级域名(SLD)服务器的地址,本例⼦会返回 .test的地址 接着向次级域名服务器发送请求,然后会返回通过域名查询到的⽬标IP,本例⼦会返回www.test.com 的地址 Local DNS Server会缓存结果,并返回给⽤户,缓存在系统中
CDN的⼯作原理:
(1)⽤户未使⽤CDN缓存资源的过程:
1. 浏览器通过DNS对域名进⾏解析(就是上⾯的DNS解析过程),依次得到此域名对应的IP地址
2. 浏览器根据得到的IP地址,向域名的服务主机发送数据请求
3. 服务器向浏览器返回响应数据
(2)⽤户使⽤CDN缓存资源的过程:
1. 对于点击的数据的URL,经过本地DNS系统的解析,发现该URL对应的是⼀个CDN专⽤的DNS服务 器,DNS系统就会将域名解析权交给CNAME指向的CDN专⽤的DNS服务器。
2. CND专⽤DNS服务器将CND的全局负载均衡设备IP地址返回给⽤户
3. ⽤户向CDN的全局负载均衡设备发起数据请求
4. CDN的全局负载均衡设备根据⽤户的IP地址,以及⽤户请求的内容URL,选择⼀台⽤户所属区域的 区域负载均衡设备,告诉⽤户向这台设备发起请求
5. 区域负载均衡设备选择⼀台合适的缓存服务器来提供服务,将该缓存服务器的IP地址返回给全局负 载均衡设备
6. 全局负载均衡设备把服务器的IP地址返回给⽤户
7. ⽤户向该缓存服务器发起请求,缓存服务器响应⽤户的请求,将⽤户所需内容发送⾄⽤户终端。 如果缓存服务器没有⽤户想要的内容,那么缓存服务器就会向它的上⼀级缓存服务器请求内容,以此类 推,直到获取到需要的资源。最后如果还是没有,就会回到⾃⼰的服务器去获取资源。

4. CDN的使⽤场景
A.使⽤第三⽅的CDN服务:如果想要开源⼀些项⽬,可以使⽤第三⽅的CDN服务
B.使⽤CDN进⾏静态资源的缓存:将⾃⼰⽹站的静态资源放在CDN上,⽐如js、css、图⽚等。可以 将整个项⽬放在CDN上,完成⼀键部署。
C.直播传送:直播本质上是使⽤流媒体进⾏传送,CDN也是⽀持流媒体传送的,所以直播完全可以使 ⽤CDN来提⾼访问速度。CDN在处理流媒体的时候与处理普通静态⽂件有所不同,普通⽂件如果在 边缘节点没有找到的话,就会去上⼀层接着寻找,但是流媒体本身数据量就⾮常⼤,如果使⽤回源 的⽅式,必然会带来性能问题,所以流媒体⼀般采⽤的都是主动推送的⽅式来进⾏。
相关文章:
前端面试当中CDN会问啥------CDN详细教程来啦
⼀、CDN 1. CDN的概念 CDN(Content Delivery Network,内容分发⽹络)是指⼀种通过互联⽹互相连接的电脑⽹络系统,利 ⽤最靠近每位⽤户的服务器,更快、更可靠地将⾳乐、图⽚、视频、应⽤程序及其他⽂件发送给⽤户&…...
刷题记录:牛客NC19429红球进黑洞 区间拆位异或+区间求和
传送门:牛客 题目描述: 区间求和区间异或k 输入: 10 10 8 5 8 9 3 9 8 3 3 6 2 1 4 1 1 2 6 2 9 10 8 1 1 7 2 4 7 8 2 8 8 6 2 2 3 0 1 1 2 2 9 10 4 1 2 3 输出: 33 50 13 13一道区间求和区间异或的题目,可以称得上是线段树的一道好题 首先对于异或运算来说,并不满足…...
信息数智化招采系统源码——信息数智化招采系统
信息数智化招采系统 服务框架:Spring Cloud、Spring Boot2、Mybatis、OAuth2、Security 前端架构:VUE、Uniapp、Layui、Bootstrap、H5、CSS3 涉及技术:Eureka、Config、Zuul、OAuth2、Security、OSS、Turbine、Zipkin、Feign、Monit…...
20230217使AIO-3399J开发板上跑通Android11系统
20230217使AIO-3399J开发板上跑通Android11系统 2023/2/17 15:45 1、解压缩SDK:rk3399-android-11-r20211216.tar.xzrootrootrootroot-X99-Turbo:~$ tar xvf rk3399-android-11-r20211216.tar.xz 2、编译U-boot: rootrootrootroot-X99-Turbo:~/rk3399-a…...
Java 基础面试题——面向对象
目录1.面向对象和面向过程有什么区别?2.面向对象的有哪些特征?3.静态变量和实例变量有什么区别?4.Java 对象实例化顺序是怎样的?5.浅拷贝和深拷贝的区别是什么?5.1.浅拷贝5.2.深拷贝5.3.总结6.Java 中创建对象的方式有哪几种&…...
PDF文件替换内容(电子签章),依赖免费pdfbox
首先提前准备,压入如下依赖 <!-- https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox --> <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId>…...
nvm 控制 node版本
nvm 官网 https://nvm.uihtm.com/ 1、卸掉nodejs,根据官网操作 2、如果之前安装过的nodejs,且安装的目录改变了,需重新配置系统环境 第一步:打开此电脑 > 右键属性 > 高级系统设置 > 环境变量 第二步: 在系统变量中选中…...
javaEE 初阶 — 传输层 TCP 协议中的异常情况与面向字节流的粘包问题
文章目录1 粘包问题1.1 什么是粘包问题1.2 如何解决粘包问题2 异常情况TCP 的十个特性:确认应答机制 超时重传机制 连接管理机制 滑动窗口 流量控制与拥塞控制 延迟应答与捎带应答 1 粘包问题 1.1 什么是粘包问题 面向字节流引入了一个比较麻烦的粘包问题。 …...
IP路由基础
——IP路由基础(IA)—— HCIA全套笔记已经上线(arpAAAvlanTrunk链路聚合vlan间通信ACL广域网技术以太网交换...........)_孤城286的博客-CSDN博客 目录 ——IP路由基础(IA)—— (1&#…...
12.centos7部署sonarqube9.6
12.centos7部署sonarqube9.6环境:sonarqube9.6Postgresql13JDK11sonarqube9.6下载地址:Postgresql13 rpm下载地址:JDK11下载地址:准备工作:修改文件句柄数(最大文件数)和用户最大进程数限制修改…...
大学四年自学Java编程,现在拿到28万年薪的offer,还是觉得挺值的
最近刚拿到美团的Java后端工程师的offer,(底薪、奖金、补贴、年终奖、五险一金)总包加在大概有28万的年薪,实际到手不会有这么多,但是我对于这个待遇还是非常满意的。说来还是非常的感慨,我属于那种从大一到…...
MySQL的日志详解
目录 一.介绍 日志分类 二.错误日志 三.二进制日志—binlog 概述 日志格式 操作 四.查询日志 五.慢查询日志 一.介绍 在任何一种数据库中,都会有各种各样的日志,记录着数据库工作的方方面面,以帮助数据库管理员追踪数据库曾经发生过的…...
输出该股票所有收盘比开盘上涨3%以上的日期
1:输出该股票所有收盘比开盘上涨3%以上的日期 #codingutf-8 import tushare as ts import pandas as pd import numpy as np#获取某支股票的历史行情数据 dfts.get_hist_data(code600519,start2001-01-01) #将互联网上的数据获取并且存储到本地 df.to_csv(./maotai…...
数值卡,让数据可视化玩出新花样丨三叠云
数值卡 路径 仪表盘 >> 仪表盘设计 功能简介 1. 数值卡增加「数值标题」、「图标」、「进度条」功能,使得应用场景更为广泛,实现数据可视化,让用户能够轻松地获取、处理信息。 2.「数据模型」支持0个维度1个指标、1个维度1个指标。…...
有这几个表现可能是认知障碍前兆
我国目前对于认知障碍的认知率、就诊率、诊断率很低,然而认知障碍如果能在早期发现,并及时治疗,生活质量会有效提高,缓解家属的精神和经济负担。所以,认知障碍的前兆一定要了解。1.记忆力减退,一周内的重要…...
java面试题-阿里真题详解
前言 大家好,我是局外人一枚,最近有不少粉丝去阿里巴巴面试了,回来之后总结不少难题给我,以下是面试的真题,跟大家一起来讨论怎么回答。 阿里一面 1、说⼀下ArrayList和LinkedList区别 ⾸先,他们的底层数…...
JSON格式解析关键词搜索API
为了进行此平台API的调用,首先我们需要做下面几件事情。 1、 获取一个KEY。 2、 参考API文档里的接入方式和示例。 3、查看测试工具是否有需要的接口,响应实例的返回字段是否符合参数要求。 4、利用平台的文档中心和API测试工具,对接口进…...
【Java基础】泛型(二)-泛型的难点:通配符
本文将尝试将通配符和泛型中的继承,多态一并讲解 关于泛型中继承的注意事项 因为Integer、Double继承了Number,根据多态性,以下语句是合法的 Number n new Integer(10); // OK, 父类引用变量可以指向子类对象 n 2.9 // OK,n实…...
黑马】后台管理-两个括号的坑
记录一下这两天的坑没想到后台管理系统上线这两天都没有搞明白1.首先第一个坑是使用node.js的express中间件框架创建一个微型服务器,然后将vue脚手架生成的dist文件夹的文件放入里面了 ,把项目加载到web服务器之后运行node .\app.js,页面显示…...
05:进阶篇 - 使用 CTKWidgets
作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 CTKWidgets 包含了一组 Qt 部件,用于生物医学成像应用程序。当然,即使你的程序与医学无关,很多部件也是很有参考意义的。 在 CTK 源码中,有很多选项开关,可以控制你想要编译的内容(详见:04:进阶篇 …...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...
LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...
通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...
字符串哈希+KMP
P10468 兔子与兔子 #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; const int N 1000010; ull a[N], pw[N]; int n; ull gethash(int l, int r){return a[r] - a[l - 1] * pw[r - l 1]; } signed main(){ios::sync_with_stdio(false), …...
