从cdn说起
为什么要使用cdn
雅虎军规有一条规则建议我们是用cdn。随便在网上搜索,可以找到使用的cdn的好处。
再次强调第一条黄金定律,减少网页内容的下载时间。提高下载速度还可以通过CDN(内容分发网络)来提升。CDN通过部署在不同地区的服务器来提高客户的下载速度。如果你的网站上有大量的静态内容,世界各地的用户都在访问,我说的是youtube么?那CDN是必不可少的。事实上大多数互联网中的巨头们都有自己的CDN。我们自己的网站可以先通过免费的CDN供应商来分发网页资源。
cdn不只是可以让用户去请求到离自己最近的服务器,提高速度,他还有以下几个好处。
1. 防止本域名下的cookie在发送请求时被带过去。
如果在network下看过页面的请求,可以发现,即使是请求一张jpg的图片,也会发送同域下的cookie过去。即便是不到几k的大小,用户量大了,也是一个巨大的消耗。不论是出于加载速度还是宽带的考虑,都应该避免这种情况。这也是静态cdn的域名不与主域名一致的原因之一。
2. 防止过多请求被浏览器限制。
浏览器同域名的请求是有最大并发限制的,一般是6个。具体可以参考这篇博客。这是cdn的域名不与主域名一致的原因之二。
3. 方便缓存复用。
如果是同一个静态文件,在多个页面被加载,如果在cdn上,被客户端缓存下来,那么再打开另一个页面,也不需要再去请求,可以直接使用缓存。
说点别的
说到了cdn,就想到了一些平时开发时约定俗成的习惯。
dns预解析
估计大部分同学都会有一个文件存满了诸如以下的内容:
<meta http-equiv="x-dns-prefetch-control" content="on" />
<link rel="dns-prefetch" href="http://img.jd.com" />
<link rel="dns-prefetch" href="http://static.jd.com" />
公司常常会有很多个静态资源的域名,有的时候,页面下的静态资源很可能是从许多个不同的域名下加载的。而域名解析为主机也需要时间,这时,如果我们使用dns预解析,可以加快资源的请求速度。
这需要浏览器的支持,目前主流浏览器全部支持。
合理利用缓存
雅虎军规第一条————减少http请求。
实际开发中,雪碧图、压缩捆绑css、js是我们常用的方式。但是在客户端能力越来越强的如今,其实不一定非要这么做。
举个例子,如今客户端会缓存大部分静态资源在本地,加上并发请求的原因,多个文件反而能更好的利用客户端的能力。
我认为,在项目上线时,尽可能找到复用较多的资源,单独拿出来,项目专享的js和css打包成一个文件,不失为一个更好的选择。
常用的cdn网站
bootCdn这个网站可以用来检索常用的前端项目。
七牛也有这种服务。
以上是我个人的一些理解,如有不对,敬请指教。
从cdn说起的更多相关文章
- 百度MIP移动页面加速——不只是CDN
MIP是用CDN做加速的么?准确答案是:是,但不只是. MIP全称Mobile Instant Pages,移动网页加速器,是百度提出的页面加速解决方案.MIP从前端渲染和页面网络传输两方面进行优化, ...
- 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践
提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...
- 阿里云系列——6.给你的域名使用CDN加速(详细步骤+简单配置)
网站部署之~阿里云系列汇总 http://www.cnblogs.com/dunitian/p/4958462.html 进入管理页面:https://home.console.aliyun.com/ ...
- Signalr系列之虚拟目录详解与应用中的CDN加速实战
目录 对SignalR不了解的人可以直接移步下面的目录 SignalR系列目录 前言 前段时间一直有人问我 在用SignalR 2.0开发客服系统[系列1:实现群发通讯]这篇文章中的"/Si ...
- CDN模式介绍
body{ font: 16px/1.5em 微软雅黑,arial,verdana,helvetica,sans-serif; } CDN(content delivery networ ...
- 前端CDN公共库
通过使用公共的CDN脚本和样式库,可以在一定程度上加速访问.节省服务器流量.提升你的网站用户体验.本文将介绍国内比较常用的几种免费的CDN库,包括百度.新浪.360.又拍和七牛等. 百度CDN公共库 ...
- 百度CDN
地址如下: http://cdn.code.baidu.com/
- 推荐一些国内的Jquery CDN免费服务
Jquery是个非常流行的JS前端框架,在很多网站都能看到它的身影.很多网站都喜欢采用一些Jquery CDN加速服务,这样网站加载jquery会更快.之前火端网络的一些网站都是使用Google的jq ...
- 【转】《从入门到精通云服务器》第七讲—负载均衡和CDN技术
在IDC知识中,我们常常会遇上负载均衡与CDN的概念而不知所云.第一讲[什么是云计算], 我们提到过负载均衡,仅给大家留下了印象.这次我们将深入浅出的讲讲到底什么是负载均衡与CDN技术.---互联网数 ...
- bootstrap之CDN
bootstrap之CDN CDN是Content Delivery Network的缩写,简单的说就是Bootstrap把自己的css.Js等文件托管到某一个网络服务器上使用时调用.如果与Inter ...
随机推荐
- wpf中内置资源文件
wpf中包含三种文件类型 资源文件:编译到可执行或库 WPF 程序集中的数据文件. 内容文件:与可执行 WPF 程序集具有显式关联的独立数据文件. 源站点文件:与可执行 WPF 程序集没有关联的独立数 ...
- Redis密码设置与访问限制(网络安全)
现在用redis缓存热数据越来越常见了,甚至一些配置,开关等等的东西也写到redis里.原因就是redis简单高效.redis里的数据也越来越重要了,例如一些业务的中间数据会暂时存放在redis里,所 ...
- 【学习】ie-css3.htc---让ie8以下支持css3
学习了偶象大神的一篇文章:<让IE6/IE7/IE8浏览器支持CSS3属性>http://www.zhangxinxu.com/wordpress/?p=783 亲自实践了一下,主要是bo ...
- 【转载】Retina屏的移动设备如何实现真正1px的线?
文章转载自 酷勤网 http://www.kuqin.com/ 原文链接:http://www.kuqin.com/shuoit/20150530/346322.html 原文摘要:前些日子总被人问起 ...
- 接口自动化测试方案PHP + mysql
接口测试在测试工作中是很常见的工作,但是在以往的接口测试工作中借助的一般是第三方插件.python开发的发送请求脚本.LR脚本.Jmeter脚本,之前也使用python开发了一套接口自动化测试系统,但 ...
- python xml sendEmail
使用python进行发送邮件,研究的主要是用smtplib这个包,具体代码如下,eg: #!/usr/bin/python #coding=utf-8 import smtplib from emai ...
- 解读python中SocketServer源码
在看SocketServer源码之前,先看一个例子: class Base(object): def __init__(self, name): self.name = name self.Testf ...
- JDBC基本开发
JDBC基本开发步骤 一:注册驱动 方式一:DriverManager.registerDriver(new Driver()); //存在注册两次问题,性能较低,消耗资源 方式二:Class.for ...
- 怎样在Win10下安装ubuntu双系统
Win10系统下安装ubuntu系统 安装前准备: 概念 在动手之前,一定要先了解双系统.系统引导.分区这3个概念,这样才能理解安装步骤,应对安装过程中的意外情况. 双系统 双系统就是开机之后,会有一 ...
- javascript 之作用域-06
作用域 作用域是指变量和函数可访问范围,他规定了如何查找变量,也就是确定当前执行代码对变量的访问权限. 作用域有两种工作模式: 静态作用域 :又称为词法作用域,在编译阶就可以决定变量的引用,由程序定义 ...