首先说结论:
localhost
是127.0.0.1
的域名,代表本机的回环地址,访问速度快,外部无法访问,适合在本地开发中使用。
0.0.0.0
代表本机上任何IP地址,外部可以通过ip地址访问,适合在发布环境中使用。
本地回环
回环网卡(Loopback adaptor),是一种特殊的网络接口,不与任何实际设备连接,而是完全由软件实现。
运用本地环回机制,便可在主机上运行网络服务,期间不须安装实体网络接口卡,也无须将该服务开放予主机所在网络。
localhost这个主机名称一般会解析为IPv4本地环回地址127.0.0.1和IPv6本地环回地址[::1]。
host文件:
127.0.0.1 localhost
::1 localhost
特殊情况
在 MySQL 数据库上,使用主机名 localhost 与地址 127.0.0.1 和 ::1 是有差异的。[6][7]当在应用程序的客户端连接器接口中使用 localhost 作为目标时,MySQL 的 API 使用 Unix 域套接字连接到数据库,而通过环回接口的 TCP 连接需要直接使用显式地址。
环回地址
IPv4 网络标准将整个 127.0.0.0/8 地址块订为保留地址,供本地环回使用,整个地址块内有超过1600万个IP地址。所以,发送到这些地址(127.0.0.1 到 127.255.255.255)的所有数据包都会返回本机。
0.0.0.0
0在很多计算机场景中代表any或者无限大;0.0.0.0
也约定代表了任何ip地址。
综上,使用127.0.0.1
开发,访问速度快,能够屏蔽开发过程中外部访问。
使用0.0.0.0
线上使用,方便部署。
refer:wikipedia-localhost