• Domain Name System 服务
  • 位于应用层协议
  • 提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务。

    域名形式

  • 层次结构

    • .分隔多个单词,最右边为“顶级域名”,然后是“二级域名”,层级关系向左依次降低。
  • 主机名(主机用途)
    • www 万维网服务
    • mail 邮件服务
    • ftp 文件传输
    • 等等,但不是绝对,只是用于容易记忆‘

      随着网站服务类型的增加,不同的二级域名或三级域名对应不同的业务,而业务的处理任务会分配到多个服务器,所以不在需要使用 www 来标注主页,很多网站都还会做DNS解析 www,原因是尊重用户习惯(国外网站基本不用www标注主页)。

早期的域名系统只支持使用英文,而且顶级域名被限制在三个字符以内,但随着互联网的发展现在已经解除了这些限制,可以使用中文做域名。而且在”com” “net” “gov” 等之外新增了 “asia” “media” “museum” 等许多新类别的顶级域名。

域名的总长度限制在 253 个字符以内,而每一级域名长度不能超过 63 个字符。 域名是大小写无关的,但通常都使用小写的形式。

域名用途

域名主要是用于代替IP地址,使用人容易记忆。
但除此之外还有许多其它的用途,在 Apache、Nginx 这样的 Web 服务器里,域名可以用来标识虚拟主机,决定由哪个虚拟主机来对外提供服务,比如在 Nginx 里就会使用“server_name”指令:

  1. server {
  2. listen 80;
  3. server_name apple.club www.apple.club;
  4. ...
  5. }

域名本质上是个名字空间系统,使用多级域名就可以划分出不同的国家、地区、组织、公司、部门,每个域名都是独一无二的,可以作为一种身份的标识。

因为这个特性,域名也被扩展到了其他应用领域,比如 Java 的包机制就采用域名作为命名空间,只是它使用了反序。如果极客时间要开发 Java 应用,那么它的包名可能就是“org.geekbang.time”。

而 XML 里使用 URI 作为名字空间,也是间接使用了域名。

域名解析

DNS 的核心系统是一个三层的树状、分页式服务,基本对应域名的结构

  1. 根域名服务器(Root DNS Server)
    • 管理顶级域名服务器,返回”com”,”net”,”cn”等顶级域名服务的 IP 地址
  2. 顶级域名服务器(Top-level DNS Server)
    • 管理各自域名下的权威域名服务器,如 com 顶级域名服务器可以返回 apple.com 域名服务器的 IP 地址
  3. 权威域名服务器(Authoritative DNS Server)
    • 管理自己域名下主机的 IP 地址,如 apple.com 权威域名服务器可以返回 www.apple.com 的 IP 地址

DNS 域名、域名解析 - 图1

全世界只有13台(这13台根域名服务器名字分别为“A”至“M”,a.root-servers.net) 1个为主根服务器在美国。

其余12个均为辅根服务器, 其中9个在美国, 欧洲2个,位于英国和瑞典, 亚洲1个位于日本。