关于localhost和127.0.0.1的区别

最近捣鼓本地部署一些大模型应用,突然发现本地网页可以通过localhost:port访问,但是却不能通过127.0.0.1:port访问,所以去详细琢磨了一下这两者的区别。

奇怪的是我以前做的一些全栈项目,当初全凭心情来使用localhost或是127.0.0.1来访问也没啥问题,所以也不清楚问题的具体原因。

LocalHost

localhost是一个主机名称,它是本地服务器名称,在访问localhost时,它指向本地电脑主机的网络地址,系统会自动把它解析成IP地址,通常即为本地回环地址127.0.0.1。但是,它可以被配置为任何IP地址,包括IPv4IPv6

127.0.0.1

127.0.0.1是一个IPv4地址,它是一个特殊的IP地址,用于指向本地主机。在计算机网络中,127.0.0.1被称为回环地址(Loopback Address),它是一个特殊的IP地址,用于测试网络连接和本地服务。

区别

localhost

  • 是一个主机名。
  • 通常解析为127.0.0.1,但解析依赖于系统的hosts文件配置。

127.0.0.1

  • 是一个具体的 IPv4 地址。
  • 直接指向本地环回接口。
  • 它就是一个Ipv4地址,无需解析,但是不支持Ipv6

问题重述

文章开头提到的两者不能同时访问的问题,究其原因,很可能是localhost访问时,系统带的本机当前用户的权限去访问,而用ip的时候,等于本机是通过网络再去访问本机,可能涉及到网络用户的权限。

总结来说,localhost是一个主机名,通常解析为127.0.0.1,但它可以配置为其他地址。而127.0.0.1是一个固定的IPv4地址,直接用于环回通信。