为什么 url 通常使用域名而不是 IP 地址?

2022-12-21 19:50:22 浏览数 (1)

大家好,我是前端西瓜哥。今天来谈谈为什么我们的网址,通常是使用域名,而不是 IP 地址。

首先我们了解一下 DNS 是什么。

DNS

DNS,全称为 Domain Name System,即域名系统。DNS 是互联网中一个非常基础和重要的系统。

DNS 是一个分布式数据库,记录了域名和对应 IP 的相互映射,一个经常被用到的功能就是通过域名拿到对应的 IP。

假设我们通过 https://reactjs.org/docs/getting-started.html 访问页面。

这个 URL 代表,客户端尝试通过 HTTPS 协议,去访问 reactjs.org 网站下路径为 docs/getting-started.html 的内容。

为此,客户端会去找到那个服务器,但没有一个叫 reactjs.org 的服务器,服务器是通过 IP 定位的,我们需要的是 IP。

于是我们用 DNS,传入 reactjs.org,然后拿到 IP:76.76.21.21,然后去访问这个 IP,这样网站背后的服务器就能提供服务了,最后客户端获取到了页面。

其实就是:域名 --> IP --> 真实服务器。

为什么要用域名而不用 IP?

首先,域名方便记忆

IP 没有意义,比如 39.156.66.10 就像是一个手机号,难以记忆。

域名通常是有语义的,比如 qq.comwww.zhihu.com,我们能很容易记住它们,在需要的时候很快书写它们。

然后,通过域名的这一层抽象,我们可以随意地更换其下的 IP 地址

如果我们的网站用的是一个固定 IP,当我们想更换服务器,同时也代表 IP 会被替换,那我们就需要一个个通知用户,这是不能接受的。

如果用的是域名,我们改 DNS 的映射就可以了。

此外你还能做一些高级操作,比如负载均衡。负载均衡就是让 DNS 给不同的用户提供不同的 IP 地址,让他们访问不同的服务器,通过集群的方式,减轻单个服务器的压力。

还比如 CDN,内容分发系统,可以让域名指向对用户来说访问最快的 IP,让用户可以更快加载完图片、视频等资源。

结尾

通过 DNS 系统,我们可以用域名获得对应 IP 地址,这样更容易记忆,也对 IP 代表的具体服务器做了一层抽象,能更好地去替换服务器或实现集群。

我是前端西瓜哥,关注我,学习更多前端知识。

0 人点赞