当前位置: 首页 > news >正文

前端面试当中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

首先提前准备&#xff0c;压入如下依赖 <!-- 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&#xff0c;根据官网操作 2、如果之前安装过的nodejs,且安装的目录改变了&#xff0c;需重新配置系统环境 第一步&#xff1a;打开此电脑 > 右键属性 > 高级系统设置 > 环境变量 第二步&#xff1a; 在系统变量中选中…...

javaEE 初阶 — 传输层 TCP 协议中的异常情况与面向字节流的粘包问题

文章目录1 粘包问题1.1 什么是粘包问题1.2 如何解决粘包问题2 异常情况TCP 的十个特性&#xff1a;确认应答机制 超时重传机制 连接管理机制 滑动窗口 流量控制与拥塞控制 延迟应答与捎带应答 1 粘包问题 1.1 什么是粘包问题 面向字节流引入了一个比较麻烦的粘包问题。 …...

IP路由基础

——IP路由基础&#xff08;IA&#xff09;—— ​​​​​​​HCIA全套笔记已经上线&#xff08;arpAAAvlanTrunk链路聚合vlan间通信ACL广域网技术以太网交换...........)_孤城286的博客-CSDN博客 目录 ——IP路由基础&#xff08;IA&#xff09;—— &#xff08;1&#…...

12.centos7部署sonarqube9.6

12.centos7部署sonarqube9.6环境&#xff1a;sonarqube9.6Postgresql13JDK11sonarqube9.6下载地址&#xff1a;Postgresql13 rpm下载地址&#xff1a;JDK11下载地址&#xff1a;准备工作&#xff1a;修改文件句柄数&#xff08;最大文件数&#xff09;和用户最大进程数限制修改…...

大学四年自学Java编程,现在拿到28万年薪的offer,还是觉得挺值的

最近刚拿到美团的Java后端工程师的offer&#xff0c;&#xff08;底薪、奖金、补贴、年终奖、五险一金&#xff09;总包加在大概有28万的年薪&#xff0c;实际到手不会有这么多&#xff0c;但是我对于这个待遇还是非常满意的。说来还是非常的感慨&#xff0c;我属于那种从大一到…...

MySQL的日志详解

目录 一.介绍 日志分类 二.错误日志 三.二进制日志—binlog 概述 日志格式 操作 四.查询日志 五.慢查询日志 一.介绍 在任何一种数据库中&#xff0c;都会有各种各样的日志&#xff0c;记录着数据库工作的方方面面&#xff0c;以帮助数据库管理员追踪数据库曾经发生过的…...

输出该股票所有收盘比开盘上涨3%以上的日期

1&#xff1a;输出该股票所有收盘比开盘上涨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. 数值卡增加「数值标题」、「图标」、「进度条」功能&#xff0c;使得应用场景更为广泛&#xff0c;实现数据可视化&#xff0c;让用户能够轻松地获取、处理信息。 2.「数据模型」支持0个维度1个指标、1个维度1个指标。…...

有这几个表现可能是认知障碍前兆

我国目前对于认知障碍的认知率、就诊率、诊断率很低&#xff0c;然而认知障碍如果能在早期发现&#xff0c;并及时治疗&#xff0c;生活质量会有效提高&#xff0c;缓解家属的精神和经济负担。所以&#xff0c;认知障碍的前兆一定要了解。1.记忆力减退&#xff0c;一周内的重要…...

java面试题-阿里真题详解

前言 大家好&#xff0c;我是局外人一枚&#xff0c;最近有不少粉丝去阿里巴巴面试了&#xff0c;回来之后总结不少难题给我&#xff0c;以下是面试的真题&#xff0c;跟大家一起来讨论怎么回答。 阿里一面 1、说⼀下ArrayList和LinkedList区别 ⾸先&#xff0c;他们的底层数…...

JSON格式解析关键词搜索API

为了进行此平台API的调用&#xff0c;首先我们需要做下面几件事情。 1、 获取一个KEY。 2、 参考API文档里的接入方式和示例。 3、查看测试工具是否有需要的接口&#xff0c;响应实例的返回字段是否符合参数要求。 4、利用平台的文档中心和API测试工具&#xff0c;对接口进…...

【Java基础】泛型(二)-泛型的难点:通配符

本文将尝试将通配符和泛型中的继承&#xff0c;多态一并讲解 关于泛型中继承的注意事项 因为Integer、Double继承了Number&#xff0c;根据多态性&#xff0c;以下语句是合法的 Number n new Integer(10); // OK, 父类引用变量可以指向子类对象 n 2.9 // OK&#xff0c;n实…...

黑马】后台管理-两个括号的坑

记录一下这两天的坑没想到后台管理系统上线这两天都没有搞明白1.首先第一个坑是使用node.js的express中间件框架创建一个微型服务器&#xff0c;然后将vue脚手架生成的dist文件夹的文件放入里面了 &#xff0c;把项目加载到web服务器之后运行node .\app.js&#xff0c;页面显示…...

05:进阶篇 - 使用 CTKWidgets

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 CTKWidgets 包含了一组 Qt 部件,用于生物医学成像应用程序。当然,即使你的程序与医学无关,很多部件也是很有参考意义的。 在 CTK 源码中,有很多选项开关,可以控制你想要编译的内容(详见:04:进阶篇 …...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...

Git常用命令完全指南:从入门到精通

Git常用命令完全指南&#xff1a;从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...

WEB3全栈开发——面试专业技能点P4数据库

一、mysql2 原生驱动及其连接机制 概念介绍 mysql2 是 Node.js 环境中广泛使用的 MySQL 客户端库&#xff0c;基于 mysql 库改进而来&#xff0c;具有更好的性能、Promise 支持、流式查询、二进制数据处理能力等。 主要特点&#xff1a; 支持 Promise / async-await&#xf…...

echarts使用graphic强行给图增加一个边框(边框根据自己的图形大小设置)- 适用于无法使用dom的样式

pdf-lib https://blog.csdn.net/Shi_haoliu/article/details/148157624?spm1001.2014.3001.5501 为了完成在pdf中导出echarts图&#xff0c;如果边框加在dom上面&#xff0c;pdf-lib导出svg的时候并不会导出边框&#xff0c;所以只能在echarts图上面加边框 grid的边框是在图里…...

性能优化中,多面体模型基本原理

1&#xff09;多面体编译技术是一种基于多面体模型的程序分析和优化技术&#xff0c;它将程序 中的语句实例、访问关系、依赖关系和调度等信息映射到多维空间中的几何对 象&#xff0c;通过对这些几何对象进行几何操作和线性代数计算来进行程序的分析和优 化。 其中&#xff0…...

宠物车载安全座椅市场报告:解读行业趋势与投资前景

一、什么是宠物车载安全座椅&#xff1f; 宠物车载安全座椅是一种专为宠物设计的车内固定装置&#xff0c;旨在保障宠物在乘车过程中的安全性与舒适性。它通常由高强度材料制成&#xff0c;具备良好的缓冲性能&#xff0c;并可通过安全带或ISOFIX接口固定于车内。 近年来&…...

Asp.net Core 通过依赖注入的方式获取用户

思路&#xff1a;Web项目中&#xff0c;需要根据当前登陆的用户&#xff0c;查询当前用户所属的数据、添加并标识对象等。根据请求头Authorization 中token&#xff0c;获取Redis中存储的用户对象。 本做法需要完成 基于StackExchange.Redis 配置&#xff0c;参考&#xff1a;…...