在学习DNS和CDN前我们要先认识一下URL是什么东西,理解其中的符号代表什么,首先我们先认识一下统一资源定位符(URL)
统一资源定位符(URL)
也被称为[网址],用于互联网上的资源
https://www.example.com:8080/books?id=1000#Good
(://)之前的称为scheme方案,意思就是该通过https来定位,也就是https协议(最后返回的是文本资源)。ftp,smtp都可能会在这里。
(www.example.com)主机,对应IP地址,
(8080)端口,应用
(path)路径,
(?)之后(#)之前就是query查询,提供客户端更加自由的方式。
(#)之后就是fragment片段,更细粒度的拆分。
在了解了统一资源定位符之后,我们正式进入到我们的CDN的学习当中去
DNS( Domain Name System)
DNS是个需要前端工程师理解的分布式系统(前后不分家/技多不压身)
域名系统
通过你给的url找到对应的ip,也就是通过这个系统我们就知道,这个域名在哪里,
DNS Query过程
发送一个url的时候,不会直接发给世界顶级的服务,而是本地的服务开始开始,没有在去根域名请求,根域名并没有存储所有的ip地址,所有告诉你这个网址ip地址在哪里,如果是.com就会让你去.com的顶级域名服务,然后会告诉你,和该网址有关的权威域名服务器,这个服务器放回一个AA(Authoritative answer 权威的回答都以这个为准)给本地,本地服务商会缓存他,然后IP给用户。根服务器全球不会有几台。
DNS记录
资源记录(Resource Record)
超过30种类型
A记录
定义主机IP地址
AAAA记录
定义主机IPV6地址
CNAME记录(Canonical Name Record)
定义域名的别名
MX记录(Mail exchanger record)
定义邮件记录 (作为邮件服务域名)
NS记录(Name Server Record)
定义提供信息的服务器
使用的dns服务
SOA记录(Start of Authority Record)
定义多个ns服务器中哪个是主服务器
更新会从主服务器开始更新,主服务器就是最准的。
TXT记录
提供文本
在域名下写一个文本证明你是这个的管理者。
了解的DNS的词条和他DNS Query过程是如何进行的,学习了如何去查看系统IP的过程,我们进入学习CDN内容分发网络
CDN
内容分发网络(CONtent Delivery Network),是基于基于地理位置的发布式代理服务器/数据中心,CDN可以提供高可用,也可以提升性能和体验,因为在这个过程会优先找最近的网咯分发节点,提高请求的效率。
中国主干网络
中国电信
中国联通
中国移动
(三大运营商)
中国教育和科研计算机网
中国科技网
广电宽带
。。。
中国网络区别于国外,中国是一张一张网络交织起来的
网与网之间要交流会有额外开销
谷歌也有自己的体系
CDN实现原理
- 用户输入网站,浏览器会解析要请求什么,
- 然后进行一步DNS请求 查询IP地址
- 发送要请求什么网址,返回CNAME;
- 浏览器解析CNAME 发送给DNS
- DNS返回一个cdn智能查询dns服务ip
- 发给智能调度中心,调度中心就会知道你要请求的文件。会去节点拿,一般这个节点会离你比较近,
1.CDN回源 如果找不到这个文件就会去你主干找这个文件,重新请求。 - 返回ip
cdn一般存长期不变的资源。删除在节点会是一个很麻烦的事情,一般不做修改,重新上传,覆盖名字。