简介

大家熟知的localhost和127.0.0.1都是指向本地的地址。在本地跑起来的web项目使用localhost和127.0.0.1都可以访问,但实际上,是有所差别的。

详解

localhost

localhost是一个域名,系统默认解析到127.0.0.1,ipv6默认解析到[::1],是可以自己修改的。linux在/etc/hosts文件,windows在C:\Windows\System32\drivers\etc\hosts文件。

127.0.0.1

127.0.0.1,通常被称为本地回环地址(Loopback Address),不属于任何一个有类别地址类。它代表设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口。在Windows操作系统中也有相似的定义,所以通常在安装网卡前就可以ping通这个本地回环地址。一般都会用来检查本地网络协议、基本数据接口等是否正常的。

两者区别

localhost127.0.0.1本机IP
网络不联网不联网联网
传输不经网卡传输。不受网络防火墙和网卡相关的限制 通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制 通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制
访问R本机访问本机访问 本机或外部访问

其中本机IP指在局域网内或者公网IP,比如连接上WIFI后,路由器会给电脑分配一个IP。

注意:windows系统和linux系统有所不同,上表只是对Linux系统的阐述。
windows系统中localhost和127.0.0.1一样,也会经网卡传输,也会受到网络防火墙和网卡相关的限制。
同时,在Linux系统最好使用localhost,因为占用资源少。有时遇到127.0.0.1无法访问的问题,这极有可能是防火墙或者网卡作祟,换成localhost就可以了。