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

devtools/2024/9/19 19:57:59/ 标签: 前端

目录

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/devtools/114250.html

相关文章

【已解决】【Windows】【Linux】大数据开发环境配置

常见的虚拟机软件主要有两款 VMware 和 VirtualBox 。VMware是商付费软件,而VirtualBox是免费软件,对于一般用用的话VirtualBox基本可以应付大多数情况了。 步骤: 安装VirtualBox下载镜像在VirtualBox中导入镜像进行适当参数调整 本机电脑…

TCP客户端编码和解码处理:发送和接收指定编码消息

文章目录 引言基于Netty实现TCP客户端Netty发送GBK编码指令Netty接收GBK编码基于Channel发送指令基于ChannelHandlerContext发送指令:建立连接时发送登陆指令开启日志,查看报文信息基于ChannelInboundHandlerAdapter进行业务逻辑处理原生API实现TCP客户端基于DataOutputStrea…

普罗米修斯监控

目录 概念 部署方法 1. 二进制(源码包) 2. 部署在k8s集群当中,用pod形式部署 概念 prometheus是开源的系统监控和告警。在k8s分布式的容器化管理系统当中,一般都是搭配prometheus来进行监控。它是服务监控系统,也…

【Java】多线程前置知识 初识Thread

多线程前置知识 & 初识Thread 冯诺依曼体系结构初步认识存储设备CPU指令 操作系统初识操作系统内核态和用户态 进程/任务进程是什么进程的管理进程的调度虚拟内存地址进程间的通信 线程线程的出现线程是什么线程可能出现的问题线程与进程的联系和区别 协程初识Thread类Thre…

数据结构——链表(短小精悍版)

使用链表结构可以克服数组链表需要预先知道数据大小的缺点 链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。 但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大。 单向链表: 一个…

JDBC 编程

目录 JDBC 是什么 JDBC 的工作原理 JDBC 的使用 引入驱动 使用 常用接口和类 Connection Statement ResultSet 使用总结 JDBC 是什么 JDBC(Java Database Connectivity):Java数据库连接,是一种用于执行 SQL 语句的Java…

讨论人机交互研究中大语言模型的整合与伦理问题

概述 论文地址:https://arxiv.org/pdf/2403.19876.pdf 近年来,大规模语言模型发展迅速。它们给研究和教育领域带来了许多变化。这些模型也是对人机交互(HCI)研究过程的有力补充,可以分析定性和定量数据,再…

有毒有害气体检测仪的应用和性能_鼎跃安全

随着现代工业的不断发展和扩张,越来越多的企业涉及到有毒有害气体的生产、使用和处理。工业规模的扩大导致有毒有害气体的排放量增加,同时也增加了气体泄漏的风险。在发生火灾、爆炸或危险化学品泄漏等紧急事件时,救援人员需要迅速了解现场的…

【mysql】mysql中窗口函数lag()用法

在MySQL中,窗口函数LAG()可以用来访问当前行的前一行或多行的数据。这个函数通常用于分析时间序列数据,比如计算相邻行之间的差异或者获取前一个状态等。 以下是LAG()函数的基本语法: LAG(expression [, offset] [, default_value]) OVER (…

torch.embedding 报错 IndexError: index out of range in self

文章目录 1. 报错2. 原因3. 解决方法 1. 报错 torch.embedding 报错: IndexError: index out of range in self2. 原因 首先看下正常情况: import torch import torch.nn.functional as Finputs torch.tensor([[1, 2, 4, 5], [4, 3, 2, 9]]) embedd…

计算机网络-第二章【新】

目录 计算机网络文章汇总 物理层的基本概念 数据通信的基础知识 数据通信系统的模型 有关信道的几个基本概念 信道信息交互的方式: 信道的极限容量 信道能够通过的频率范围 信噪比 物理层下面的传输媒体 导引型传输媒体 双绞线 同轴电缆 光缆 非导引型…

【鸿蒙】HarmonyOS NEXT星河入门到实战6-组件化开发-样式结构重用常见组件

目录 1、Swiper轮播组件 1.1 Swiper基本用法 1.2 Swiper的常见属性 1.3 Swiper的样式自定义 1.3.1 基本语法 1.3.2 案例小米有品 2、样式&结构重用 2.1 Extend:扩展组件(样式、事件) 2.2 Styles:抽取通用属性、事件 2.3 Builder:自定义构建函数(结构、样式、事…

Golang 中实现动态代理

在 Go 语言中,没有像 Java 中那样直接支持的动态代理机制,因为 Go 是静态类型的编程语言,不支持像 Java 反射那样基于接口的动态代理。但我们可以通过组合使用反射(reflect 包)和高阶函数的方式,实现类似于…

win10怎么配置dnat规则,访问win10的网口A ip的6443端口,映射到1.1.1.1的6443端口去

在Windows 10上配置DNAT(Destination Network Address Translation)规则,可以使用Windows自带的netsh命令来实现。以下是具体步骤: 打开命令提示符(以管理员身份运行): 按 Win X,…

python学习笔记目录

基于windows下docker安装HDDM-CSDN博客 在python中安装HDDM-CSDN博客(这个办法没安装成功)

【鸿蒙】HarmonyOS NEXT星河入门到实战9-组件化开发进阶应用状态管理

目录 1.1 创建页面 1.2 页面跳转和后退 1.3 页面栈 1.4 路由模式 1.5 路由传参 2、生命周期 3、Stage模型 3.1 目录概览 3.2 app.json5应用配置 3.3 module.json5模型配置 3.4 UIAbility组件 3.5 UIAbility的添加和设置启动 3.6 UIAbility组件的生命周期 3.7 拉起另…

RT-DETR改进策略:BackBone改进|Swin Transformer,最强主干改进RT-DETR

摘要 在深度学习与计算机视觉领域,Swin Transformer作为一种强大的视觉Transformer架构,以其卓越的特征提取能力和自注意力机制,正逐步引领着图像识别与检测技术的革新。近期,我们成功地将Swin Transformer引入并深度整合至RT-DERT(一种高效的实时目标检测与识别框架)中…

硬件工程师笔试面试——无线通讯模块

目录 15、无线通讯模块 15.1 基础 无线通讯模块实物图 15.1.1 概念 15.1.2 常见的无线通讯模块及其特点 15.1.3 无线通讯模块参数 15.1.4 无线通讯模块工作原理 15.2 相关问题 15.2.1 如何根据项目需求选择合适的无线通讯模块? 15.2.2 无线通讯模块的安全性如何,如…

针对Docker容器的可视化管理工具—DockerUI

目录 ⛳️推荐 前言 1. 安装部署DockerUI 2. 安装cpolar内网穿透 3. 配置DockerUI公网访问地址 4. 公网远程访问DockerUI 5. 固定DockerUI公网地址 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下…

C++(Qt)软件调试---断点高级用法(20)

C(Qt)软件调试—断点高级用法(20) 文章目录 C(Qt)软件调试---断点高级用法(20)[toc]1、概述2、断点高级用法1.1 条件断点1.2 日志断点/记录点/消息追踪点1.3 函数断点1.4 命中次数断点1.5 异常断点1.6 等待断点/触发断点1.7 临时断…