前端学习路线-4-DNS

When you win, say nothing. When you lose, say less.
Paul Brown

本系列关注前端部分,根据学习路线图达到学习Vue.js的目的

developer路线图developer-roadmap/translations/chinese at master · kamranahmedse/developer-roadmap

快速跳转

下一节:网站托管

概述

DNS通过允许一个名称服务器把它的一部分名称服务(众所周知的zone)“委托”给子服务器而实现了一种层次结构的名称空间。此外,DNS还提供了一些额外的信息,例如系统别名、联系信息以及哪一个主机正在充当系统组或域的邮件枢纽。

任何一个使用IP的计算机网络可以使用DNS来实现它自己的私有名称系统。尽管如此,当提到在公共的Internet DNS系统上实现的域名时,术语“域名”是最常使用的。

这是基于984个全球范围的“根域名服务器”(分成13组,分别编号为A至M)。从这984个根服务器开始,余下的Internet DNS名字空间被委托给其他的DNS服务器,这些服务器提供DNS名称空间中的特定部分。

软件

DNS系统是由各式各样的DNS软件所驱动的,例如:

国际化域名

主条目:Punycode

Punycode是一个根据RFC 3492标准而制定的编码系统,主要用于把域名从地方语言所采用的Unicode编码转换成为可用于DNS系统的编码。而该编码是根据域名相异字表 页面存档备份,存于互联网档案馆(由IANA制定),Punycode可以防止所谓的IDN欺骗

域名解析

举一个例子,zh.wikipedia.org 作为一个域名就和IP地址_198.35.26.96_ 相对应。DNS就像是一个自动的电话号码簿,我们可以直接拨打_198.35.26.96_ 的名字_zh.wikipedia.org_ 来代替电话号码(IP地址)。DNS在我们直接调用网站的名字以后就会将像_zh.wikipedia.org_ 一样便于人类使用的名字转化成像_198.35.26.96_ 一样便于机器识别的IP地址。

DNS查询有两种方式:递归迭代。DNS客户端设置使用的DNS服务器一般都是递归服务器,它负责全权处理客户端的DNS查询请求,直到返回最终结果。而DNS服务器之间一般采用迭代查询方式。

以查询 zh.wikipedia.org 为例:

  • 客户端发送查询报文"query zh.wikipedia.org"至DNS服务器,DNS服务器首先检查自身缓存,如果存在记录则直接返回结果。
  • 如果记录老化或不存在,则:
    1. DNS服务器向根域名服务器发送查询报文"query zh.wikipedia.org",根域名服务器返回顶级域 .org 的权威域名服务器地址。
    2. DNS服务器向 .org 域的权威域名服务器发送查询报文"query zh.wikipedia.org",得到二级域 .wikipedia.org 的权威域名服务器地址。
    3. DNS服务器向 .wikipedia.org 域的权威域名服务器发送查询报文"query zh.wikipedia.org",得到主机 zh 的A记录,存入自身缓存并返回给客户端。

WHOIS

一个域名的所有者可以通过查询WHOIS数据库,基本的WHOIS由ICANN维护,而WHOIS的细节则由控制那个域的域注册机构维护。

对于240多个国家代码顶级域名(ccTLDs),通常由该域名权威注册机构负责维护WHOIS。例如中国互联网络信息中心(China Internet Network Information Center)负责.CN域名的WHOIS维护,香港互联网注册管理有限公司(Hong Kong Internet Registration Corporation Limited)负责.HK域名的WHOIS维护,台湾网络信息中心(Taiwan Network Information Center)负责.TW域名的WHOIS维护。