域名系统 (英文, DNS) 是浏览网络的关键组成部分,然而极少有网页用户知道它是如何工作的。如果你希望深入理解网络浏览器如何搜索大量文档,以便向终端用户显示正确的页面,那此文章在你探索的过程中将派上用场。
DNS 是什么?
域名系统 (DNS) 是一个得到广泛认可的机制,用于标识和定位所有通过网络可以访问的页面和内容。它将人类可以直接阅读的 URL 翻译连接成了机器可读的数字格式。
尽管存在许多网络浏览器、互联网服务提供商 (ISP)、域名注册商和 Web Host,但只有一个通用的 DNS。这使得可以向全球用户提供同一网页,无论他们使用哪种工具来访问互联网。
DNS 是如何运作的?
DNS 在短短几秒内,通过一系列快速复杂的互联网协议查找并显示你正在寻找的网页。一言以蔽之,它就像是网络电话簿。
DNS 将你在网络浏览器中输入的 URL 翻译成一个唯一的互联网协议 (IP) 地址, 这一翻译过程就像电话号码一样。每一个连接在互联网的设备,无论它是用来承载网站还是浏览网站,都有一个 IP 地址。
互联网有两种并行但分离的方式来识别网站。其一是域名空间 (通过其域名识别网站),和第二种是 IP 地址系统,这个系统使用一组独特的数字来识别连接到互联网的设备。
何谓 DNS 查询?
DNS 查询 (或 DNS 请求) 是由用户设备(即 DNS 客户端)发起,向 DNS 服务器请求信息的过程。而最常见的 DNS 查询类型是请求与特定域相关联的 IP 地址。
何谓 DNS 服务器?
DNS 服务器是一台将域名转换为 IP 地址的机器。IP 地址将网络浏览器引导至用户请求内容的服务器。
DNS 服务器如何运作?
DNS 服务器通过一个被称为 DNS 解析的过程进行运作。一个客户端发起一个 DNS 查询,这个查询寻找一个所谓的"A 记录",使域名关联至一组 IP 地址,并向用户展示相应的网页。
在加载网页的过程中涉及到四种类型的 DNS 服务器:一个 DNS 递归器(也称为递归解析器)、根服务器、顶级域名 (TLD) 名称服务器和权威服务器。
DNS 递归器
DNS 递归器 (或递归解析器) 是 DNS 查询的第一步。你可以将递归解析器想象为大型档案库中的接待员。解析器从你的浏览器中接收 DNS 查询,并向其他一些服务器发送自己的 DNS 请求,以便帮你找到你正在寻找的信息。
根服务器
在 DNS 查询过程中,根服务器是递归器查询的第一个服务器。DNS 根服务器从递归器接收请求,并回应一列掌握递归器查询信息的顶级域名 (TLD) 名称服务器。
顶级域名名称服务器
顶级域名名称服务器负责维护所有共享相同扩展名 (如 .com 或 .net) 的域名信息,被称为顶级域名。在从根服务器收到回应之后,DNS 递归器查询相应的顶级域名名称服务器,后者会回应正确的权威服务器。
权威服务器
权威服务器可以提供 DNS 递归器开始询问的那个查询的答案。权威服务器回应网页的 IP 地址,或者如果找不到,就回应一个错误信息。
一旦解析器找到了所请求网页对应的 IP 地址,就可以将该信息发送到网络浏览器,然后网络浏览器就可以显示所请求的网页。
DNS 和 IP 地址之间的区别是什么?
DNS 将用户请求的域名翻译成 IP 地址。IP 地址是一个域名下的文件的数值位置。
什么是 DNS 缓存?
DNS 缓存是 DNS 客户端在本地存储 DNS 记录的过程。客户端通常是操作系统或网络浏览器。缓存可以让客户端在不需要进行 DNS 查询的情况下,生产与特定域名相关的网页信息。
域名系统还对所有 DNS 记录实施了一个生存时间 (或 TTL),该记录指明一个记录可以被缓存多长时间。在缓存过程中存储了 TTL 值,使得记录在特定时间后从缓存中删除。
DNS 查询有哪些类型?
DNS 查询有三种类型:递归的,迭代的和非递归的。
递归查询
在一个递归查询中,一个 DNS 客户端提交一个主机名,并要求递归 DNS 服务器 (DNS 解析器) 回应正确的资源记录,或者一个表示记录无法被检索的错误消息。
迭代查询
在一个迭代查询中,一个 DNS 客户端提交一个主机名,并允许 DNS 解析器给出它的最佳回答。DNS 解析器可以通过返回缓存的 DNS 记录(如果它有的话)进行回应,或者将 DNS 客户端引向根服务器或最接近所需 DNS 区域的权威 DNS 服务器。 然后,递归器查询给出的 DNS 名称服务器是否有匹配。本过程在服务器的指令链中不断地进行,直至出现答案、错误或超时。
非递归查询
在此类查询中,DNS 解析器可立即提供答案,因为它对记录有权威,或是因为它在其缓存中存储了记录。在非递归查询中,无需进行额外查询,即可立即返回响应。
什么是 CNAME 记录?
规范名称 (英文, CNAME) 记录在 DNS 查找过程中用来创建一个域名到另一个域名的别名。
例如,一个试图将子域名 www.example.com 解析的 DNS 客户端,将会被一个 CNAME 记录引导至根域 (在此情形下,例如例.com).
CNAME 记录通常用于:
- 将用户从所有者的名义转至托管网站。例如,输入网址 gogle.com 将重定向用户至 google.com,尽管存在拼写错误。
- 为运行在不同端口的特定网络服务提供独立的主机名。例如,允许一个文件传输协议 (FTP) 在同一 IP 地址的不同端口上运行。
- 登记本地化域名并将它们指向一个主网站。例如,假设你在 example.com 上托管了你的主要网站,而你希望将 example.ca, example.co.uk 和 example.us 的用户重定向到同一个网站。
DNS 是互联网中的关键组成部分
没有域名系统(DNS),浏览互联网就会变得不可能。DNS 的通用性使网络浏览器能够在一个通常不到一秒的时间内,梳理出线上巨大的文档库,并向用户展现出正确的页面。
DNS 常见问题
DNS 是什么意思?
DNS 是域名系统的缩写。
DNS 是什么,为什么要用它?
域名系统 (DNS) 是一个被广泛认可的命名制度,将人类可读的域名转化为计算机可读的 IP 地址,使得不同的浏览器在访问同一网页时能够加载相同的 DNS 信息。
DNS 和 IP 有什么区别?
虽然 DNS 和 IP 地址都在 DNS 查询中起到作用,但是他们有各自非常不同的角色。域名系统 (DNS) 是一个被广泛认可的工具,将域名与计算机可读的 IP 地址相匹配。将 DNS 想遇到电话簿是很有帮助的,其中域名就像是一个常用的或特定的名字,IP 地址则相当于电话号码。
什么是名称服务器?
名称服务器是 DNS 的服务器组成部分,它在 DNS 解析过程中负责将人类可读的域名和主机名翻译成计算机可读的 IP 地址。
什么是 DNS 服务器?
DNS 服务器 (和名称服务器同义) 是在 DNS 解析过程中负责将主机名翻译成 IP 地址的服务器。在 DNS 查找过程中使用了四种类型的 DNS 服务器:DNS 递归器、根名称服务器、顶级域名 (TLD) 名称服务器和权威名称服务器。