CDN原理,缓存技术,防盗链

一、CDN请求原理:
1)上海电信用户,通过其配置的电信的DNS,要求解析www.163.com这个域名。
2)如果电信的DNS本地没有这个域名解析,则会去163.com对应的权威域名服务器上去解析。
3)163.com的权威域名服务器会根据,DNS的视图,根据来源是上海电信的IP地址,然后把www.163.com这个域名cname到上海电信的CDN节点。
4)这样上海电信的用户就可以访问到上海电信的CDN节点。

二、CDN的两大关键技术:
1)DNS的视图技术
使用该技术,可以把来自不同区域、运营商的用户被调度到距离用户最近的不同的CDN节点。
2)CDN节点的缓存和代理
如果在该节点上有对应的未过期的资源,如图片,HTML,CSS等,则它直接返回给用户而缩小资源的请求时间。

三、缓存控制原理?
原理:HTTP协议一般采用request,response模型,服务器端使用响应头部的控制信息,可以精细化的管理客户端的缓存行为。
一般使用4个指令来控制:
1)last-modified:表示该文件的最后修改时间,客户端会根据该参数判断文件是否发生变化。
2)Etag:相当于资源的身份ID,他基于文件的最后修改的时间戳和文件大小计算出来。
3)Expire:服务器告知客户端,在expire确认的日期之前,不必再发起HTTP请求。
4)Max-age:通知客户端,你自收到这个文件起,86400秒内,都可以放心使用,不必重新请求url。
注意:expire与max-age都是同一个意思,由于服务器与客户端可能时间不一致,一般以max-age为准。

[root@zg-harbor-server ~]# wget -S http://www.baidu.com
--2019-09-12 11:09:55--  http://www.baidu.com/
Resolving www.baidu.com (www.baidu.com)... 180.101.49.11, 180.101.49.12
Connecting to www.baidu.com (www.baidu.com)|180.101.49.11|:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Accept-Ranges: bytes
  Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
  Connection: Keep-Alive
  Content-Length: 2381
  Content-Type: text/html
  Date: Thu, 12 Sep 2019 11:09:55 GMT
  Etag: "588604c8-94d"
  Last-Modified: Mon, 23 Jan 2017 13:27:36 GMT
  Pragma: no-cache
  Server: bfe/1.0.8.18
  Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
Length: 2381 (2.3K) [text/html]
Saving to: ‘index.html.8’
100%[===================================================================================>] 2,381 --.-K/s   in 0s      
2019-09-12 11:09:55 (237 MB/s) - ‘index.html.8’ saved [2381/2381]

[root@zg-harbor-server ~]# wget --header='If-Modified-Since: Mon, 23 Jan 2017 13:27:36 GMT' -S http://www.baidu.com
2019-09-12 11:10:31 ERROR 304: Not Modified. #确认文件的修改时间,确保不修改

[root@zg-harbor-server ~]# wget --header='If-None-Match: "588604c8-94d"' -S http://www.baidu.com
2019-09-12 11:13:22 ERROR 304: Not Modified. #确保文件的一致性

四、CDN防盗链

CDN的防盗链原理
原因:是指本站的资源被非授权的第三方网站直接在页面中引用,倒链既浪费了大量的带宽资源,又失去了对于版权文件的控制,
因此需要在CDN缓存节点上对URL进行校验。

设置的方法有2种:
1)使用HTTP Referer,Http Referer是HTTP的一个请求的头部,表明了被请求的资源在哪个页面中被调用。
2)使用生产动态链接的方式,原理是首先在页面上产生资源的URL的时候,使用动态编程语言,生成类似结构
http://music1.woyo.com/musicl-abcdef.mp3?key=xxxyyyzzzaaaddd。在缓存节点上收到用户的请求时,对该
URL的key进行验证。该方法一般用于视频,音频等比较大的文件的防盗链检查。

key的组成:
key=2008072210110A-MD5-KEY表示一个加密串
1)其中2008072210110表示时间戳,
2)A-MD5-KEY是一个MD5的串,A-MD5-KEY=md5(base_url+datetime+password )
base_url:就是请求http://music1.woyo.com/musicl-abcdef.mp3
datetime:请求中的时间戳
password:表示源站和CND约定的一个密码。

校验过程:
1)检查防盗链的key是否存在。
2)从防盗链中取出时间戳,与当前时间比较,如果超出有效时间±2小时,超时返回校验失败。
3)生产的MD5值,与请求中的A-MD5-KEY相比较,如果不等,返回校验失败。
4)如果上面的成功了,CDN缓存服务器就向用户返回正常的响应。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值