为什么推荐将静态资源放到CDN上?

在这里插入图片描述

一、什么是静态资源

说到静态资源,我们还要知道什么是动态资源

静态资源

静态资源是指在服务器上存储的不经常改变的文件,如图片、CSS 文件、JavaScript 文件、字体文件等。与之相对的是动态资源,动态资源是根据用户请求和服务器端处理生成的内容,如数据库查询结果、动态网页等。

静态资源通常具有以下特点:

  • 内容不经常变化:静态资源的内容在一段时间内保持不变,不需要频繁地更新或修改。例如,图片、样式表和脚本文件通常是固定的,不会随着每个用户请求而改变。

  • 直接由客户端加载:静态资源直接由用户的浏览器或客户端加载,而不需要服务器端进行额外的处理或计算。这样可以提高网站的性能和响应速度。

  • 占据较大的存储空间:由于静态资源通常包含大量的图片、视频或其他媒体文件,因此它们可能占据较大的存储空间。这也是将静态资源放到 CDN 上的一个优势,可以利用 CDN 提供商的大规模存储和分发能力来管理这些资源。

通过将静态资源与动态生成的内容分离,可以更好地优化网站的性能和扩展性。静态资源可以被缓存,并且可以通过 CDN 进行分发,从而加快网站加载速度,减轻服务器负载,并提供更好的用户体验。

动态资源

动态资源是指在服务器端根据用户请求和其他动态条件而生成的内容。与之相对的是静态资源,静态资源是预先存在于服务器上,不需要进行额外的处理或计算

动态资源具有以下特点:

  • 根据用户请求生成:动态资源是根据用户的请求和其他动态条件,在服务器端进行实时生成的内容。例如,通过数据库查询、数据处理、业务逻辑等来生成最终的响应结果。

  • 内容经常变化:动态资源的内容可能频繁变化,以适应不同用户的需求和特定的上下文。例如,在电子商务网站上,商品价格、库存状态、用户购物车等信息都是动态生成的。

  • 需要服务器端处理:与静态资源不同,动态资源需要服务器端进行相应的处理和计算。这可能包括从数据库中检索数据、执行复杂的业务逻辑、生成动态网页等。

  • 无法缓存:由于动态资源的内容是实时生成的,通常无法进行缓存。每次用户请求时,服务器都需要重新生成并返回最新的动态内容。

动态资源通常用于呈现个性化内容、交互式功能和动态更新的信息。它们可以根据用户的需求和上下文提供更加灵活和个性化的体验。

二、什么是CDN

概念

CDN(Content Delivery Network)是指内容分发网络,是一种通过在全球范围部署服务器节点来加速内容传递的网络架构。

CDN 的基本原理是将内容(如网页、图片、视频、音频等静态资源)缓存到位于世界各地的边缘服务器节点上,当用户请求访问这些内容时,会从离用户最近的边缘节点获取资源,而不是直接从源服务器获取。这样可以减少网络延迟和传输时间,提高网站的性能和可用性。

CDN 的作用:

  1. 加速内容传递:由于 CDN 节点分布广泛,用户可以从离自己地理位置最近的节点获取内容,减少了数据传输的距离和时间。这可以显著提高网站加载速度和用户体验。

  2. 减轻源服务器负载:通过将静态资源缓存在 CDN 节点上,可以减轻源服务器的负载压力。CDN 节点可以处理大量的用户请求,分担了源服务器的压力,提高了网站的可扩展性和稳定性。

  3. 提供高可用性和容错性:CDN 在全球范围内部署了多个节点,当某个节点出现故障或网络中断时,用户仍然可以从其他可用的节点获取内容,保证了网站的高可用性和容错性。

  4. 节省带宽成本:CDN 可以根据用户的需求和访问模式,智能地分配和缓存内容。这可以减少原始服务器的带宽使用量,降低带宽成本。

常见的 CDN 提供商包括阿里云 CDN、腾讯云 CDN、Cloudflare 等,它们都提供了易于配置和管理的控制台和 API 接口,使用户可以方便地将静态资源放到 CDN 上,并享受 CDN 带来的优势。

CDN的工作原理

可以简单概括为将静态资源缓存到全球各地的服务器节点上,当用户请求访问这些资源时,从离用户最近的节点获取资源,从而加快内容传递速度和提高网站性能。

下面是CDN的详细工作流程:

选择合适的CDN服务商:首先需要选择一个可靠的CDN服务商,并在其上注册账户。不同的CDN服务商提供的服务、费用、网络覆盖范围等都有所不同,需要根据自己的需求进行选择。

  1. 上传静态资源:将需要加速的静态资源(如图片、CSS、JavaScript等文件)上传至CDN服务商的服务器上。

  2. DNS解析:将网站的DNS解析指向CDN服务商提供的DNS服务器。这样当用户请求访问网站时,会首先访问CDN服务商的DNS服务器,获取最接近用户的节点IP地址。

  3. 请求调度:当用户发出请求后,CDN服务商的负载均衡系统会根据用户的位置、节点负载情况、网络状况等因素,自动选择最佳的节点响应用户请求。

  4. 边缘节点缓存:如果请求的资源已经存在于服务器上,CDN服务商的边缘节点会直接返回缓存的资源给用户;如果请求的资源不存在于服务器上,则边缘节点会从源服务器上获取该资源,并将资源缓存到本地。

  5. 内容传输:当边缘节点获取到请求资源后,会通过最短的网络路径将资源传输到用户端,从而提高传输速度和响应时间。

  6. 缓存更新:当源服务器的静态资源发生变化时,CDN服务商会自动将变化的资源同步到各个节点上,更新缓存内容。

综上所述,CDN通过在全球范围内部署服务器节点、智能调度请求、缓存静态资源等方式,可以加速内容传递、提高网站性能、降低带宽成本、提供高可用性和容错性等优势。

三、好处

  1. 加速网页加载速度:CDN 服务器通常会分布在全球各地,用户请求静态资源时可以从距离更近的 CDN 节点获取资源,从而大大缩短了加载时间。这对于全球用户访问网站来说非常重要,尤其是对于大型图片、视频等资源。

  2. 减轻源服务器压力:将静态资源放到 CDN 上可以减轻源服务器的负载,因为用户请求静态资源时可以直接从 CDN 获取,而不必每次都请求源服务器。这样可以提升源服务器的性能和稳定性。

  3. 提高并发处理能力:由于 CDN 可以缓存静态资源,并具有强大的分发能力,可以更好地处理大量并发请求,从而提高网站的整体性能和稳定性。

  4. 降低成本:通过使用 CDN,可以减少源服务器的流量消耗,降低运营成本。此外,一些 CDN 提供商还会根据流量费用、区域费用等因素灵活定价,有助于优化成本。

综上所述,将静态资源放到 CDN 上可以显著提升网站的性能和稳定性,同时降低成本。因此,推荐将静态资源放到 CDN 上以获得更好的用户体验和网站性能。

四、步骤

要将静态资源放到 CDN 上,您可以按照以下步骤进行操作:

  1. 选择合适的 CDN 提供商:市面上有许多知名的 CDN 提供商,例如阿里云 CDN、腾讯云 CDN、Cloudflare 等。您可以根据自己的需求和预算选择适合的 CDN 提供商。

  2. 注册并配置 CDN 服务:注册一个 CDN 服务账户,然后按照提供商的指引进行配置。您需要添加自己的域名,并设置相应的 CNAME 记录或者将 DNS 解析指向 CDN 提供商的服务器。

  3. 上传静态资源到 CDN:将您的静态资源(例如图片、CSS、JavaScript 文件等)上传到 CDN 提供商的控制台或通过 API 进行操作。通常,您可以选择将资源上传到指定目录或者使用存储桶等方式进行管理。

  4. 更新网站代码中的资源链接:在您的网站代码中,将原来的静态资源链接(例如图片、CSS、JavaScript 的链接)替换为 CDN 提供商给出的对应链接。这样,在用户访问您的网站时,浏览器会从 CDN 节点获取资源而不是直接请求源服务器。

  5. 测试和验证:确保您的网站能够正常加载 CDN 上的静态资源。可以通过访问网站并检查网络请求,或者使用开发者工具进行监测和调试。

请注意,在将静态资源放到 CDN 上之前,您需要了解 CDN 提供商的具体操作步骤和文档指引,以确保正确配置和管理。此外,还要考虑缓存策略、版本管理、刷新机制等因素,以便灵活地更新和管理静态资源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/236074.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【后端学前端】第二天 css动画 动感菜单(css变量、过渡动画、过渡延迟、js动态切换菜单)

目录 1、学习信息 2、源码 3、变量 1.1 定义变量 1.2 使用变量 1.3 calc() 函数 4、定位absolute和fixed 5、transform 和 transition,动画 5.1 变形transform 5.2 transition 5.3 动画animation 6、todo 1、学习信息 视频地址:css动画 动感菜…

.9.png的创建

1、创建.9.png 选中图片,右击,选择Create 9-Patch file,点击确定会生成一个xxx.9.png的图片 2、绘制拉伸区域 在图片的最外边界绘制拉伸区域,按住鼠标左键不放,绘制完成后保存就可以使用了。绘制结果示意如下&…

【AI绘画】万字长文——(超详细)ControlNet的详细介绍使用Stable Diffusion的艺术二维码完全生成攻略

目录 前言一、名词解释1-1、Stable Diffusion介绍1-2、ControlNet介绍1-2-1、ControlNet介绍&工作原理1-2-2、ControlNet控制方法介绍 1-3、案例分析1-3-1、室内装修设计1-3-2、品牌创意海报 1-4、stable-diffusion-webui 的参数解释 二、生成方法2-1、图像到图像2-1-1、二…

nodejs微信小程序+python+PHP健身服务应用APP-计算机毕业设计推荐 android

人类的进步带动信息化的发展,使人们生活节奏越来越快,所以人们越来越重视信息的时效性。以往的管理方式已经满足不了人们对获得信息的方式、方便快捷的需求。即健身服务应用APP慢慢的被人们关注。首先,网上获取信息十分的实时、便捷&#xff…

工业级路由器在货运物流仓储管理中的应用

工业级路由器在货运物流仓储管理中扮演着重要的角色,为整个物流系统提供了稳定可靠的网络连接和数据传输支持。下面将从以下几个方面介绍工业级路由器在货运物流仓储管理中的应用。 实时监控和追踪:工业级路由器通过与各种传感器、监控设备和物联网设备的…

高仿互站网站源码 后台手机端两套模板 电脑端二十套模版

源码简介 高仿互站网 后台手机端两套模板 电脑端二十套模版,简单介绍几个功能, 支持用户注册开店 开店申请,支持用户发布自己商品 支持卡密形式或实物形式, 支持用户自己发布求助 任务大厅功能,源码完整

解决火狐浏览器拖拽事件打开新页面的问题

产生原因及解决方案 我们在进行拖拽事件的编写时会发现,在火狐浏览器上会发生打开新窗口的问题,这是火狐浏览器的一个特性。 这是因为在 Firefox 中 ondrop 事件会触发 Firefox 自带的拖拽搜索功能,在 ondrop 事件触发执行时触发的函数中加…

A-23 P离子交换树脂:高效去除无机有机污染物的新选择

在当今水处理行业中,高效、环保的离子交换树脂备受关注。本文将为您介绍一款具有卓越性能的碱性季胺基阴离子交换树脂——Tulsion A-23 P。通过分析其特性和应用,展示其在水处理领域的优势。 一、Tulsion A-23 P离子交换树脂的特性 物理化学稳定性&#…

<习题集><LeetCode><队列><225/232/387/622/641>

目录 225. 用队列实现栈 232. 用栈实现队列 387. 字符串中的第一个唯一字符 622. 设计循环队列 641. 设计循环双端队列 225. 用队列实现栈 https://leetcode.cn/problems/implement-stack-using-queues/ class MyStack{private Queue<Integer> queue1;private Queu…

SQL命令---修改字段的数据类型

介绍 使用sql语句修改字段的数据类型。 命令 alter table 表明 modify 字段名 数据类型;例子 有一张a表&#xff0c;表里有一个id字段&#xff0c;长度为11。使用命令将长度修改为12 下面使用命令进行修改&#xff1a; alter table a modify id int(12) NOT NULL;下面使修…

基于lambda简化设计模式

前言 虽说使用设计模式可以让复杂的业务代码变得清晰且易于维护&#xff0c;但是某些情况下&#xff0c;开发可能会遇到我为了简单的业务逻辑去适配设计模式的情况&#xff0c;本文笔者就以四种常见的设计模式为例&#xff0c;演示如何基于lambda来简化设计模式的实现。 策略…

node.js express JWT token生成与校验

目录 JWT header&#xff08;标头&#xff09; payload&#xff08;有效负载&#xff09; signature&#xff08;签名&#xff09; 访问令牌&#xff08;token&#xff09; express jwt生成、验证 生成jwt 验证jwt JWT JWT 是轻量级的数据交换格式&#xff0c;相对于传…

银行数据分析入门篇:信用卡全生命周期分析,到底应该怎么做?

最近有朋友向我咨询银行信贷业务的数据分析&#xff0c;就看了很多案例&#xff0c;刚好看到一个信用卡全生命周期分析的案例&#xff0c;做得很详细又通俗易懂&#xff0c;基本上可以直接复制套用&#xff0c;所以特地分享给大家。 本文主要分享作者整个分析作品的思路&#x…

力扣17. 电话号码的字母组合(java 回溯法)

Problem: 17. 电话号码的字母组合 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 题目给定一串数字&#xff0c;要求我们找出所有可能的字母组合&#xff0c;即我们可以穷举出所有可能的结果&#xff0c;而涉及到穷举我们自然可以想到利用回溯来解决问题&#xff0c…

我的NPI项目之Android 安全系列 -- Android Strongbox 初识

从Android9(Pie)开始,Google强烈建议支持Strongbox. 具体描述如下: 一直到目前的Android14. 对应的内容也一并贴出来: 说人话就是Android开始通过独立于主SoC的单元进行密钥存储了。 通常&#xff0c;这样的单元就是我们通常称作的Secure Element&#xff08;SE&#xff09;&am…

5分钟搞懂K8S Pod Terminating/Unknown故障排查

Kubernetes集群中的Pod有时候会进入Terminating或Unknown状态&#xff0c;本文列举了6种可能的原因&#xff0c;帮助我们排查这种现象。原文: K8s Troubleshooting — Pod in Terminating or Unknown Status 有时我们会看到K8S集群中的pod进入"Terminating"或"U…

FFmpeg-基础组件-AVFrame

本章主要介绍FFmpeg基础组件AVFrame. 文章目录 1.结构体成员2.成员函数AVFrame Host内存的获取 av_frame_get_bufferAVFrame device内存获取av_hwframe_get_buffer&#xff08;&#xff09; 1.结构体成员 我们把所有的代码先粘贴上来&#xff0c;在后边一个一个解释。 typede…

基于ssm办公用品管理系统开发与设计论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本办公用品管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息…

HashData:大数据时代的“追光者”

12月7日—9日&#xff0c;2023中国光电子产业集群大会暨光电交易博览会在武汉光谷科技会展中心举办。酷克数据作为国内云数仓领军企业&#xff0c;受邀出席本次大会。 在会上&#xff0c;酷克数据展示了云数仓领域最新前沿技术以及HashData云数仓在行业应用落地方案与实践案例…