大家好,我是前端西瓜哥。今天来谈谈为什么我们的网址,通常是使用域名,而不是 IP 地址。
首先我们了解一下 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 没有意义,比如 39.156.66.10
就像是一个手机号,难以记忆。
域名通常是有语义的,比如 qq.com
、www.zhihu.com
,我们能很容易记住它们,在需要的时候很快书写它们。
然后,通过域名的这一层抽象,我们可以随意地更换其下的 IP 地址。
如果我们的网站用的是一个固定 IP,当我们想更换服务器,同时也代表 IP 会被替换,那我们就需要一个个通知用户,这是不能接受的。
如果用的是域名,我们改 DNS 的映射就可以了。
此外你还能做一些高级操作,比如负载均衡。负载均衡就是让 DNS 给不同的用户提供不同的 IP 地址,让他们访问不同的服务器,通过集群的方式,减轻单个服务器的压力。
还比如 CDN,内容分发系统,可以让域名指向对用户来说访问最快的 IP,让用户可以更快加载完图片、视频等资源。
通过 DNS 系统,我们可以用域名获得对应 IP 地址,这样更容易记忆,也对 IP 代表的具体服务器做了一层抽象,能更好地去替换服务器或实现集群。
我是前端西瓜哥,关注我,学习更多前端知识。