前端-CDN的理解及CDN一些使用平台

news/2024/9/19 1:20:29/ 标签: 前端

目录

1.CDN的概念

(1) 分发服务系统

(2)均衡负荷系统

(3)运营管理系统

(4)缓存系统

(5)支撑系统

2.CDN的基本工作原理

3.CDN使用缓存资源过程

4.CDN对前端开发的意义

5.前端优化可使用的CDN平台

总结


本文主要介绍CDN的了解和使用CDN资源的过程,还有一些CDN使用平台。

1.CDN的概念

CDN内容分发网络,是一种通过互联网互相连接的电脑网络系统,利用最靠近每
位用户的服务器,更快、更可靠地将音乐、图片、视频、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。

CDN系统通常可以分为以下几个关键部分:

(1) 分发服务系统

分发服务系统是CDN的核心功能之一,最基本的工作单元是cache设备(存储设备),主要负责将内容从源服务器推送到边缘的缓存服务器中,并将内容数据流分发到全网的缓存服务器中,这些缓存服务器随后为用户提供内容服务。

(2)均衡负荷系统

均衡负荷系统是CDN的另一个核心组成部分,它的主要功能是为用户的服务请求进行优化的访问调度,确保用户能够以最优的方式访问到内容。

均衡负荷系统一般分为两级:全局/区域负荷均衡系统(GSLB)和本地负荷均衡系统(SLB)。全局/区域负荷均衡系统通常采用DNS解析与应用层重定向的方法,根据用户就近访问的原则选择缓存服务器节点。而本地负荷均衡系统则负责缓存服务器节点内部的调度,确保节点内部的负载均衡。

(3)运营管理系统

运营管理系统它负责处理CDN系统的日常运营和业务管理。运营管理系统通常由两个子系统组成:运营管理和网络管理。

运营管理子系统主要包括客户管理、业务管理、计费管理与数据采集等模块,用于处理与用户、业务、计费及数据分析等相关的任务。网络管理子系统则负责监控CDN网络的运行状态,确保网络的稳定性和可靠性。

(4)缓存系统

缓存服务器是CDN系统中最基本的工作单元负责缓存热点数据,如静态资源(HTML、CSS、JavaScript文件、图片等)和多媒体资源(视频、音频等)。

当用户请求这些内容时,CDN系统可以直接从缓存服务器中提供,从而减少对源服务器的访问压力,提高访问速度。

(5)支撑系统

支撑系统包括各种辅助CDN系统正常运行和优化的工具和服务。

例如,阿里云CDN的支撑系统包括天眼、数据智能和配置管理系统等,它们分别具备资源监测、数据分析和配置管理能力。

这些工具和服务有助于CDN系统更好地适应不同的网络环境和业务需求,提高系统的整体性能和稳定性。

2.CDN的基本工作原理

(1)内容分发:CDN服务器将网站或应用的内容(如HTML、CSS、JavaScript文件、图片、视频等)缓存到各地的边缘服务器上。

(2)提供访问路由:当用户请求访问网站时,CDN系统通过智能DNS(域名系统)解析或HTTP重定向等机制,将用户的请求引导到距离用户最近且负载较低的CDN节点上。

(3)缓存加速:因为内容已被缓存到CDN节点,用户的请求可以直接从最近的CDN节点获取数据,而不需要回源服务器,从而减少了数据传输的距离和时间。

(4)负载均衡:CDN系统能够自动检测各节点的健康状况和负载情况,确保流量能够均匀分配到各个节点,避免单一节点过载。

(5)安全性增强:CDN还可以提供DDoS防护、HTTPS加速等安全功能,保护网站和应用免受恶意攻击。

3.CDN使用缓存资源过程

用户使用CDN缓存资源的过程:

用户发起请求:用户在前端(如浏览器)输入或点击一个URL,该URL指向了希望访问的资源(如网页、图片、视频等);

本地DNS解析:如果网站使用了CDN服务,请求首先通过本地DNS系统,然后转向CDN专用的DNS服务器;

智能选择:CDN的DNS服务器具有智能调度功能,会根据用户位置和网络状况,智能选择一个最优的CDN节点;

节点响应:CDN节点检查并快速响应用户请求,如果资源已缓存则直接返回,否则从源站获取并缓存后返回;

资源加载:用户设备加载并显示CDN返回的资源。

4.CDN对前端开发的意义

提升用户体验:减少页面加载时间,提高页面响应速度,特别是在高并发访问和跨地域访问的情况下。

减轻服务器压力:由于CDN缓存了大量静态资源,减少了回源请求,从而减轻了源服务器的负载。

优化资源加载:CDN支持HTTP/2、HTTP/3等协议,提供更快的资源加载速度和更高效的连接复用。

增强网站安全性:提供安全加速功能,保护网站免受各种网络攻击。

5.前端优化可使用的CDN平台

CDN适用于任何需要加速内容传输、提高用户体验和增强安全性的场景。下面说一些可以使用的CDN平台。像大多服务商,比如阿里云、腾讯云、又拍云、七牛云等的 CDN 都是按量收费的。

 字节跳动:http://cdn.bytedance.com/

jsDelivr:https://www.jsdelivr.com/

jsDelivr是一个免费开源的CDN解决方案,包含JavaScript库、jQuery插件、CSS框架、字体等Web上常用的静态资源。它不仅适用于前端项目的加速,还可以作为图床的加速器。

UNPKG:https://unpkg.com/

unpkg是一个快速的全球内容交付网络,适用于npm中的所有内容。开发者可以通过简单的URL格式快速加载任何文件。

BootCDN:https://www.bootcdn.cn/

BootCDN是一个稳定、快速、免费的前端开源项目CDN加速服务,致力于为Bootstrap、jQuery、Angular、Vue.js等优秀的前端开源项目提供稳定、快速的CDN加速服务。它收录了众多前端开源项目,并支持HTTPS协议,确保数据传输的安全性。

Staticfile CDN:https://staticfile.org/

总结

CDN是前端开发和优化及其他领域中不可或缺的一部分,它通过在全球范围内缓存和分发内容,提升了网站和应用的访问速度和用户体验。CDN平台比较多,像一些像静态图片聚合图床 - 免费无限图片上传 (superbed.cn)  TinyPNG – Compress WebP, PNG and JPEG images intelligently ,视频视频二维码_视频二维码酷播官网_酷播云官网 (cuplayer.com)  ,文件等CDN。还有哪些好用的,欢迎大家分享!


http://www.ppmy.cn/news/1526170.html

相关文章

前端Vue框架实现html页面输出pdf(html2canvas,jspdf)

代码demo&#xff1a; <template><el-dialog class"storageExportDialog" :fullscreen"true" title"" :visible.sync"visible" v-if"visible" width"600px"><div id"exportContainer" …

[极客大挑战 2019]Http

1、访问题目链接 2、查看页面源码发现一个Secret.php的跳转页面 3、访问Secret.php发现页面有提示&#xff0c;它说它不是来自这个网页 4、抓包修改来源 添加&#xff1a;Referer: https://Sycsecret.buuoj.cn 发送查看响应 5、修改User-Agent为&#xff1a;Syclover 6、添加X-…

【Qt系列样式表】探索Qt Widget的艺术化设计与应用(Macos风格)(持续更新中...)

✨✨ Rqtz 个人主页 : 点击✨✨ &#x1f308;Qt系列专栏:点击 &#x1f388;PyQt系列专栏:点击&#x1f388; &#x1f388;Qt智能车上位机专栏: 点击&#x1f388; &#x1f388;Qt串口助手专栏:点击&#x1f388; &#x1f4ab;宗旨:共享IT之美,共创机器未来 目录 界面…

编译QT源码时的configure参数须知

文章目录 一、configure help原文二、configure help机译三、features 执行命令得到configure帮助文件 qtsrc/configure --help一、configure help原文 Usage: configure [options] [-- cmake-options]This is a convenience script for configuring Qt with CMake. Options…

iPhone 16 发布 “从零开始为人工智能设计”的iPhone

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

数论-快速幂

快速幂 模板代码推导过程 求 A^B mod C&#xff0c;时间复杂度 O(logB) 模板代码 using ll long long; // 可以在头文件中添加这行ll qmi(ll a, ll b, ll c) {ll ans 1; // 初始化结果为 1a % c; // 将 a 取模 c&#xff0c;确保 a 小于 cwhile (b) …

Go语言现代web开发05 指针和结构体

指针 Pointers are complex data types that store the memory address of value. Simply put, if we have a value stored in the memory address as 100 and a pointer to that value, the pointer value will be 100. The default value for a pointer is nil. Nil pointer…

重修设计模式-创建型-建造者模式

重修设计模式-创建型-建造者模式 允许用户通过链式调用方法来逐步构建复杂对象&#xff0c;让复杂对象的构建与它的表示分离&#xff0c;即对象的表示和对象的构造过程解耦。 建造者模式的原理和实现非常简单&#xff0c;重点在于复杂对象的构建过程和定制化。具体实现中&#…

OkHttp Interceptor日志上报

最近为了做一些网络上的优化&#xff0c;所以就得提前埋点&#xff0c;为后续网络优化提供数据支持。 主要是对发起请求埋点&#xff0c;请求错误埋点&#xff0c;客户端请求耗时埋点。 事件上报到阿里云&#xff0c;接入的是阿里的应用实时监控服务。 网络请求使用的是OhHttp…

【移动端】Flutter与uni-app:全方位对比分析

文章目录 一、含义1. Flutter2. uni-app 二、开发程序步骤1. Flutter2. uni-app 三、基本语言区别四、优缺点1. Flutter2. uni-app优点&#xff1a;缺点&#xff1a; 五、如何选型 一、含义 1. Flutter Flutter是由Google开发的一款跨平台移动应用开发框架&#xff0c;采用Da…

怎么选择适合的服务器

大家都知道&#xff0c;不管是公司还是个人&#xff0c;在数字化浪潮已经席卷全球的环境下&#xff0c;大家对服务器的需求是日渐增长的。很多人在买服务器的时候&#xff0c;多少都有点选择困难&#xff0c;今天我们就来对比下物理服务器和弹性云服务器&#xff0c;看看选哪个…

【leetcode C++】动态规划

16. 123. 买股票的最佳时机3 题目&#xff1a; 给定一个数组&#xff0c;它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意&#xff1a;你不能同时参与多笔交易&#xff08;你必须在再次购买前出售…

Linux下write函数

在 Linux 中&#xff0c;write 函数是操作系统提供的最基础的系统调用之一&#xff0c;用于向文件描述符写入数据。它的使用非常广泛&#xff0c;不仅仅限于普通文件&#xff0c;还包括管道、套接字、字符设备等。 Linux 中的 write 函数详解 一、函数定义与头文件 write 函…

C# winform 字符串模糊查询,也就是查找子串

C# winform 字符串模糊查询&#xff0c;也就是查找子串。 1. String.Contains() Contains() 方法通常使用内部的 IndexOf() 实现&#xff0c;所以它的性能与 IndexOf() 相近。这是一个非常快速的方法&#xff0c;适合于一般的应用场景。 2. String.IndexOf() IndexOf() 方法…

性能测试的复习3-jmeter的断言、参数化、提取器

一、断言、参数化、提取器 需求&#xff1a; 提取查天气获取城市名请求的响应结果&#xff1a;城市对查天气获取城市名的响应结果进行响应断言和json断言对查天气获取城市名添加用户参数 1、步骤 查看天气获取城市名 json提取器&#xff08;对响应结果提取、另一个接口请求…

Graphviz 安装并使用 (Python)

概述 Graphviz 是一款由 AT&T Research 和 Lucent Bell 实验室开源的可视化图形工具&#xff0c;可以很方便的用来绘制结构化的图形网络&#xff0c;支持多种格式输出。Graphviz 输入是一个用 dot 语言编写的绘图脚本&#xff0c;通过对输入脚本的解析&#xff0c;分析出其…

Android NDK工具

Android NDK工具 Android NDK Crash 日志抓取及定位 NDK-STACK 定位 NDK Crash 位置 只要执行如下代码就行&#xff1a; adb logcat | ndk-stack -sym /yourProjectPath/obj/local/armeabi-v7aPS: 必须是带symbols的so&#xff0c;也就是在’\app\src\main\obj\local\下面的…

Kernel 内核 BUG_ON()和WARN_ON()

WARN_ON() DEBUG_ON() 不是一个标准的 Linux 内核宏&#xff0c;它可能是特定内核版本或者特定内核配置中的一个宏&#xff0c;或者在某些内核代码中自定义的宏。一般来说&#xff0c;如果存在 DEBUG_ON()&#xff0c;它可能被用作一个调试开关&#xff0c;用于在调试版本中启…

判断链表的全部n个字符是否中心对称。

设单链表的表头指针为L&#xff0c;结点结构由data和next两个域构成&#xff0c;其中data域为字符型。试设计算法判断链表的全部n个字符是否中心对称。例如XYX&#xff0c;XYYX是中心对称。 思想&#xff1a;先求链表长度&#xff0c;然后将前n/2个元素入栈&#xff0c;将栈顶…

鸿蒙NEXT生态应用核心技术理念:一次开发,多端部署

在万物互联时代&#xff0c;应用开发者也面临设备底座从手机单设备到全场景多设备的转变&#xff0c;通过全场景多设备作为全新的底座&#xff0c;为消费者带来万物互联时代更为高效、便捷的体验。 在万物智联时代重要机遇期&#xff0c;鸿蒙结合移动生态发展的趋势&#xff0…