`
冰糖葫芦
  • 浏览: 297863 次
社区版块
存档分类
最新评论

CDN详解(篇一)

阅读更多
                                   

CDN是一个致力于使内容传输更快、更高效的针对web服务器的全局分布式网络。通过CDN来复制使这些内容可以在很多地方同时存在。

比较有名的CDN厂商有AKamari,Amazon Cloudfont以及Edgecast。

为什么CDN会存在?最根本的原因...获得更好的用户体验。而且第二层好处是可以使网络资源更有效的被利用。

CDN主要使用两方面的技术来实现:

  • 保持重要的内容分布在多个全局的分布式数据中心,从而使重要数据离终端用户更近,也使得下载起来更快。

  • 使用基于内容类型的服务端优化技术可以使用户以最高效的方式获取需要的内容。

首先让我们看一下通常情况下web服务器是如何向用户浏览器传输数据的。

  • 用户发出请求来下载一个web页面,这通常是通过点击一个链接来请求。

  • 用户浏览器发送一个请求到web服务器来请求相应内容。

  • web服务器开始回传所请求页面的所有内容,这通常包括许多独立的资源。

非常简单的东西。一般情况下,和用户请求相关的内容都会去同一个web服务器上请求,而请求者(如:浏览器)则不关心所请求内容的位置和类型。对于真正的大型网站来说也许会有一个负载均衡的web服务器池,但是再从一般情况来看,这些web服务器都在同一个数据中心。

但 是在简单的表象之下,还有很多事情要做。需要有一个DNS解析器来获取web服务器的ip地址。web服务器通常需要回传许多不同类型的内容到浏览器, 如:图片、JavaScript脚本、CSS、文本文件、视频以及页面包含的所有其他内容。一个典型的web页面会包含很多这样的内嵌资源而且都会发送到 浏览器--通常有超过60个不同的文件要读取,有时在一个请求中会包含超过100个资源文件!此外,有的请求为了能够渲染出所请求的内容还需要浏览器去做 一些额外的请求操作。

我们可以将所请求的内容分成以下几种不同的类型:

  • 动态内容:这些内容是由web服务器通过如php,ruby或者java等web编程语言凭空生成的。

  • 静态内容:这些内容通常是经常变化而且不需要生成。图片、CSS样式文件、javascript脚本文件都属于这类内容。

  • 流媒体内容:视频或音频等需要浏览器来控制播放的文件。

这 些类型的文件区别太大以致于没有一个服务器能够很好的为所有类型的文件提供服务。每种类型的文件都有不同的要求和优化方式。动态内容需要占用服务器大量的 内存和CPU资源,却很少占用带宽;静态内容和流媒体内容恰恰相反,占用相对较少的内存资源,却占用很大带宽。如果非要在同一台服务器上来处理两个场景将 会使两方面都会变的更糟:web服务器一方面要加载动态内容需要的内存,另一方面为所需要的非动态内容做准备。至少对同一台服务器来说,这两方面不能同时 做到最好。

 

 

 

(未完,待续。。。)

 

 

1. 本文由程序员学架构

2. 本文译自Performance Blog: Content Delivery Networks (CDN) Explained

3. 转载请务必注明本文出自程序员学架构(微信号:archleaner )

4. 更多文章请扫码:

1
1
分享到:
评论

相关推荐

    利用CDN加速react webpack打包后的文件详解

    在现代Web开发中,CDN(Content Delivery Network)已经成为加速静态资源加载的重要工具,尤其是在使用React和Webpack构建大型应用时。...希望这篇文章能帮助到大家,如果有更多问题,欢迎继续探讨和学习。

    jquery.dataTable.js 使用详解 一、基础配置

    《jQuery.dataTables.js 使用详解——一、基础配置》 在网页开发中,数据展示是一个重要的环节,而jQuery.dataTables.js插件为高效、美观的数据表格呈现提供了强大的解决方案。本篇将深入探讨该插件的基础配置,...

    大型网站性能优化实战从前端网络CDN到后端大促的全链路性能优化

    本书共5篇22章,开篇是本书的导读;架构篇是设计思想的提升,包括企业总体架构、应用架构设计、统一应用分层等;框架篇主讲中间件和工具的使用,包括消息队列、缓存、Job、集中式日志、应用监控和微服务等;

    百度SEO优化详解

    本文将基于“百度SEO优化详解”这一主题,结合描述中的30多篇文章,深入探讨相关知识点,旨在帮助网站提高在百度搜索结果中的可见性,从而增加流量和潜在客户。** 首先,我们需要了解百度的排名算法。与谷歌的...

    前端echarts词云图完整demo,+配置参数详解

    本篇将详细讲解如何使用ECharts创建一个完整的词云图示例,并对相关的配置参数进行详解。 一、ECharts简介 ECharts是百度推出的一款开源的、跨浏览器的图形库,支持多种数据图表,如地图、热力图等,特别适合用于...

    wordpress_cdn_plugin

    【WordPress CDN插件详解】 在数字化时代,网站的性能与用户体验息息相关,而CDN(Content Delivery Network)服务在其中扮演了重要角色。WordPress作为全球最受欢迎的CMS系统,其用户经常寻求优化加载速度的方法,这...

    meteor-morris-cdn:morris.js 通过 CDN for Meteor

    《Morris.js在Meteor中的CDN使用详解》 在现代Web开发中,CDN(Content Delivery Network)被广泛用于加速静态资源的加载,如JavaScript库、CSS样式表等。本篇文章将详细探讨如何在Meteor框架中利用CDN引入Morris.js...

    SpringBoot+ECharts 词云案例详解

    在本篇中,我们将深入探讨如何使用SpringBoot和ECharts构建一个词云案例。SpringBoot是一个流行的Java框架,用于简化Web应用的开发,而ECharts则是一个强大的JavaScript数据可视化库,能够帮助我们创建各种交互式的...

    webcdn:Web CDN存储库

    【Web CDN存储库:jsdelivr详解】 Web CDN(Content Delivery Network)是一种分布式网络服务,用于分发静态网页内容,如JavaScript、CSS、图片和视频等,以提高网站加载速度和性能。jsdelivr是一个开放源码的全球...

    大规格文件的上传优化思路详解

    本篇文章将深入探讨如何优化大文件上传的流程,提升用户体验并减轻服务器负担。 首先,我们要理解大文件上传的常见问题。由于大文件的数据量大,上传时间可能较长,这可能导致用户在网络不稳定的情况下上传失败。...

    阿里巴巴电子商务详解

    这篇教程主要探讨了阿里巴巴的电子商务实践,旨在帮助读者更好地理解和运用电子商务的相关知识,同时提供了源码供学习者实战演练。 首先,从文件名来看,我们可以推测这可能是一个关于网站构建和功能实现的教学资料...

    sigcomm 2011论文49篇

    **SIGCOMM 2011 论文集详解** SIGCOMM是计算机通信和网络领域的顶级会议,每年都会吸引全球各地的研究者提交他们的最新研究成果。2011年的SIGCOMM会议汇集了49篇高质量的论文,这些论文涵盖了网络通信、数据传输、...

    一篇关于前端开发的简介

    ### 前端开发知识点详解 #### 一、前端开发概览 前端开发是指构建和设计用户界面(UI)及用户体验(UX)的过程,涵盖了网站或Web应用在浏览器端的所有方面。前端开发者利用HTML、CSS和JavaScript等技术来创建视觉...

    用DNSPod和Squid打造自己的CDN (三) 安装CentOS Linux

    本篇文章将深入探讨如何通过DNSPod和Squid技术来构建个人内容分发网络(Content Delivery Network, CDN),并重点讲解安装CentOS Linux的过程。在搭建CDN的过程中,操作系统的选择至关重要,而CentOS Linux以其稳定性...

    8.(arcgis api for js篇)arcgis api for js接入高德地图.zip

    《ArcGIS API for JavaScript接入高德地图详解》 在地理信息系统(GIS)开发中,ArcGIS API for JavaScript 是一款强大的工具,它允许开发者在Web应用中集成Esri的地图服务和地理处理功能。本文将深入探讨如何利用...

    详解使用vue-admin-template的优化历程

    使用 Vue-Admin-Template 优化历程详解 在本篇文章中,我们将详细介绍使用 Vue-Admin-Template 的优化历程。 Vue-Admin-Template 是一个基于 Vue.js 的后台管理系统模板,旨在提供一个快速、灵活、可扩展的解决方案...

    ros2djs:与ROS JavaScript库一起使用的2D可视化库

    该项目是努力的一部分而发布。 用法 可以在或找到预构建的文件。 或者,您可以通过Robot Web Tools CDN使用当前版本:( )| () 依存关系 ros2djs取决于: 。 当前支持的版本是0.4.14。 当前支持的版本可以在...

    jquery插件jquery-ui-1.8.18.custom.min.js及css文件

    《jQuery UI 1.8.18 自定义插件与CSS详解》 jQuery UI 是一个基于 jQuery 库的用户界面库,它提供了丰富的交互效果、可定制的主题以及各种UI组件,如日期选择器、对话框、滑块等。在本篇文章中,我们将深入探讨其...

Global site tag (gtag.js) - Google Analytics