当我们在本地启动一个项目时,通常会得到两个访问地址:
-
localhost
-
127.0.0.1
两个地址可以指向同一个展示结果。但是大家有没有过一点好奇:这两个地址有什么区别呢?
localhost:本地主机名
“localhost”本质上是一个 域名 ,为本地计算机的IP地址提供了一个用户友好的 别名 。
它是对所提供访问的“本地”性质的标准化体现,确保我们可以在不影响外部环境的情况下进行网络应用程序的访问。可直接用于 开发和测试 目的。
127.0.0.1:IP 访问地址
“127.0.0.1”代表一个 IP地址,专门用于本地计算机内的访问通信。
它不同于 localhost,而是专门用于循环访问和内部测试的。
该地址通过将网络流量引导回本地,确保应用可以独立于外部网络接口进行运行和测试。
域名如何解析为IP地址?
现在我们已经知道 localhost 本质上为域名,而 127.0.0.1 是一个 IP。
通常,通过域名访问网站需要向DNS查询以找到相应的IP地址。但是,在当前场景下,“localhost”却不是这样的。
localhost 解析为“127.0.0.1”或“::1”(IPv6)绕过了通常的DNS查找过程。这种转换被硬编码到系统的 hosts文件 中。
Hosts 是一个没有扩展名的系统文件,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”。当用户在浏览器中输入一个需要登录的网址时,系统会首先