Bootstrap

localhost 与 127.0.0.1 的区别

一、基本概念


  • localhost

        在计算机网络中,localhost 是一个主机名(hostname),指的是当前正在使用的设备,常用于本机上运行的网络服务的域名

  • 127.0.0.1

        127.0.0.1 是一个IP地址,属于 IPv4 协议下的一个特殊地址,它被称为 环回地址,用于网络软件 测试 以及访问本机服务。
        当然使用 127.0.0.2 也是一样的,因为 hosts文件默认把localhost 解析为127.0.0.1,别的 127 也是a类环回地址,起到同样的作用(前提是其他127未绑定服务器)。为便于理解,本文以 127.0.0.1 代表A类环回地址讲述。


二、解析过程


        在IPv4环境下,虽然两者都是指向本机,但它们的工作方式存在差异。

  •         当使用 localhost ,系统会先通过 DNS (域名系统) 来解析并将其转换为相应的IP地址。当然,一般情况之下,解析过程很快,大多数操作系统都在本地的 hosts 文件中对 localhost 进行映射,使其指向 127.0.0.1
  •         直接使用127.0.0.1 因其本身就是一个IP地址,因此数据包直接在本机内部路由。

三、性能差异


        因为localhost需要解析,所以性能上会比 127.0.0.1 稍微 低,但基本上相同。
        但是在某些高性能的环境下,避免即使是最小的延迟也是至关重要的。


四、IPv6环境下的差异


localhost 在IPv6 通常解析为 ::1 ,是IPv6 的环回地址。而直接使用 127.0.0.1 无法利用 IPv6 的优势。


五、总结


  •         在多数环境下,使用 localhost127.0.0.1 不会用明显差别。
  •         若追求性能,建议直接使用 IP环回地址 : 127.0.0.1 或 ::1 ,可以略微减少DNS开销,提升性能。
  •         在IPv6环境下,优先使用 localhost 以确保正常解析环回地址。
;