如果我们有一个基于IP的系统来标识Internet上的节点,为什么需要DNS?
如果我们有一个基于IP的系统来标识Internet上的节点,为什么需要DNS?
Answers:
尽管其他人认为DNS并不是互联网正常运行所必需的,但我不同意。DNS对于基于IP的网络正常工作不是必需的,但是对于我们今天所知道的Internet 来说,绝对必要!
DNS不仅将人类可读的名称映射到IP地址,还将客户端与要连接的网络终结点的特定详细信息分离。
这样一来,服务提供商就可以实施高可用性系统并更改实施细节,而不会影响其客户。
使用DNS,一个IP地址可以为多个域的网站提供服务。(至少如果它们运行的是HTTP / 1.1。)如果没有DNS,则每个网站基本上都需要专用的IP地址,并且这些地址很快就会用完。
IP和DNS名称之间的区别在于IP指定服务器位置,而DNS名称允许您指定服务本身。通过DNS获得的最大收获不是让DNS名称更容易记住,而是在服务及其实现之间有了一层抽象。因此,基础实现可以更改,服务器可以在用户不注意的情况下移动。
没有它,互联网能否运作?不久之后,要做的第一件事就是实施类似于DNS的服务,以解决因缺乏DNS而产生的所有麻烦。例如,没有DNS链接到其他网页的超链接将很容易中断,从而使万维网无法正常运行。
从某种意义上说,DNS是内容可寻址网络的一种非常基本的形式,即您说的是您要说的,而不是说如何到达那里。您说www.google.com
,因为您知道google会搜索,但最终却不知道服务器位于地球的最后位置,这一切都归功于DNS的帮助。
不可以。没有DNS,Stack Exchange网络就无法工作。
为了证明这一点,让我们找出IP stackoverflow.com
:
$ host stackoverflow.com
stackoverflow.com has address 198.252.206.16
在浏览器中转到该页面,您将看到一个错误页面:
找不到198.252.206.16
问题与解答站点198.252.206.16似乎不存在……但是。
(对不起,我无法链接到它,Stack Exchange不允许我输入指向IP的链接。
如果您访问不存在的Stack Exchange网站,这就是您得到的hsdkgujahr.stackexchange.com
,但是它会显示“ Q&A网站hsdkgujahr.stackexchange.com
似乎还不存在……”。
现在让我们检查IP superuser.com
:
$ host superuser.com
superuser.com has address 198.252.206.16
请注意,IP地址完全相同。实际上,如果您对任何 Stack Exchange站点进行DNS查找,您将获得相同的IP。
如果将单个IP映射到多个网站,则服务器如何知道哪个网站?
答案是HTTP标头Host
随请求一起发送到服务器,并且它包含服务器的标准DNS名称。
因此,没有DNS,您将无法访问自己喜欢的Stack Exchange网站(或SourceForge项目网站,它们的工作方式相同)。
198.252.206.16 stackoverflow.com
到Hosts文件中,然后尝试转到stackoverflow.com,即使您刚刚禁用DNS,也会发现它可以正常工作。实际的?没门。但是,Internet 可以在没有DNS的情况下运行。您只是无法获得各个站点的IP。