CDN是什么?谈谈有关CDN的小知识

本文最后更新于:2020年3月25日 晚上

  1. 什么是CDN:

CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。 基本原理 CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。

  1. CDN的特点

(1)提升网站的性能

使用CDN最大的益处是为你的服务器提供“分流”,节省了你的带宽,减少了服务器的压力,很多CDN厂商提供的资源访问服务加载速度还是比较快的(墙内除外)。

(2)文件缓存

对于那些被普遍使用的资源文件(比如j q u e r y),如果用户在访问你网站之前已经访问过其他使用该CDN的网站,那么在用户浏览器中已经对该资源文件做了缓存,对于你的网站来说,这是个不错的性能提升!

(3)高可用

相信微软、谷歌、雅虎的服务器相对于你自身的服务器来说更加可靠些,他们提供了高可用、低网络延迟,降低了数据包的丢失几率。你无需担心服务器宕机或者网络延迟的问题。

  1. CDN支持4种调度类型

(1)智能DNS

智能计算,就近最佳节点为网民提供服务。

(2)HTTP DNS:

客户端直接调用HttpDNS接口获取缓存服务器IP组,再择优向IP组中的缓存服务器发送请求,替代常规DNS调度策略,适用于客户端,且客户端需稍作修改进行HttpDNS接口调用。

(3)边缘302:

针对因用户LocalDNS配置错误引起的解析错误,缓存服务器可根据终端IP进行判断,并通过302方式响应终端最优缓存服务器IP供终端访问。适用于大文件下载

(4)中心302:

调度服务器接受终端Http请求,可根据终端IP及url请求热度,将用户请求通过302方式调度至最优的缓存服务器上进行响应。

  1. CDN纠错小常识

用户使用KS3中java的sdk时出现403报错,并返回“SignatureDoesNotMatch”的错误码,该怎么办?

处理:如果返回“SignatureDoesNotMatch”的错误码,说明签名出现错误

(1)确认AccessKey是否多写了空格;

(2)当请求的header中包含Content-MD5时,StringToSign中需要包含请求内容数据的MD5值, 使用Base64编码;

(3)Content-Type 表示请求内容的类型,取HTTP header中的Content-Type;

(4)Date 取HTTP Header中的Date,且必须为 HTTP1.1 中支持的 GMT 格式,请注意,您发送请求的时间(客户端系统时间)与服务端收到请求的时间,间隔前后不得超出15分钟,否则该请求将被认为无效并返回错误,请检查发送请求设备的系统时间与标准时间是否一致;

(5)CanonicalizedKssHeaders 取HTTP请求中的以x-kss开头的Header组合;

(6)CanonicalizedResource 取用户访问的资源;

(7)签名构造规则见API接口文档中的签名。