最初的 DNS 其实就是一个名为 hosts 的文本文件, 文件里面保存的就是键值对 IP 和域名的对应关系; hosts 是保存在每个主机上的文件, 这就意味着如果域名和 IP 之间的映射关系发生改变后就会造成很大的麻烦; 因此 hosts 文件机制目前基本已经被淘汰了, 虽然这个文件还是存在的, 但是已经不再使用 hosts 来进行域名解析了.
现在使用 hosts 的场景一般是进行测试程序使用, 如某个程序里面依赖另外一个服务器, 测试该程序的时候就可以修改 hosts, 将这个域名映射到测试的服务器 IP 上, 只要保证不修改源代码, 就可以进行测试, 也不会影响到正常的线上环境.
域名解析系统既是一个应用层协议, 也是一套系统; 域名其实就是伪装后的 IP 地址, 或者可以说成是一串方便记忆的表示一个网站位置的字符串, 通常使用 . 来进行分割; 真正进行网络传输的时候, 其实就是先根据域名转换成对应的 IP 地址, 再根据 IP 地址来进行传输.
现在的 DNS 就是一组专门用来解析域名的服务器, 如下图所示:
全世界的这么多电脑, 都需要访问 DNS 服务器, 能承受的了么???
显然一个 DNS 服务器肯定顶不住全世界这么多电脑的访问请求, 但是有多种方案可以解决这样的问题: