Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >localhost 和 127.0.0.1 有什么区别?

localhost 和 127.0.0.1 有什么区别?

作者头像
用户1107783
发布于 2024-03-06 09:53:46
发布于 2024-03-06 09:53:46
8380
举报

前言

当前端开发人员在本地调试时,他们经常与本地主机交互,只需运行npm run在浏览器中打开他们的网页,地址栏显示类似http://localhost:xxx/index.html.

在运维查看ip的时候,会看到有一个127.0.0.1的地址。

那么他们两者之间有什么区别呢?

什么是本地主机(localhost)

localhost 是一个域名,除了便于记忆之外,与用于访问互联网的域名本质上没有什么不同。

localhost 的范围仅限于本地机器——它的名字很清楚:“本地”指的是本地范围内的东西。

每个人都可以在各自的计算机上使用 localhost,访问各自的页面内容,而不会互相干扰。

从域名到程序

要真正理解localhost,我们需要讨论用户如何通过域名访问程序, 以百度为例。

  • 在浏览器中输入baidu.com后,首先向DNS查询baidu.com的IP地址。

为什么是IP地址?打个比方,如果有人向您的公司发送包裹,递送单将包括公司的地址、名称和收件人等详细信息。投递过程依赖于地址进行路由,最终到达收件人。同样,在网络中,域名就像公司名称,IP 地址就像物理地址。在网络世界中,IP 地址对于定位相应的程序至关重要。DNS 的作用就像一个公司目录,列出每个域对应的 IP 地址。有些域名可能未注册,导致其 IP 地址无法找到,而另一些域名可能有多个 IP 地址,DNS 根据某些规则自动返回一个 IP 地址。购买域名后,域名服务提供商通常会提供 DNS 解析服务,在 DNS 中注册域名及其对应的 IP 地址。IP地址从哪里来?每台在线计算机都有一个IP地址,但个人计算机IP通常不适合公共访问,类似于公司内部位置,内部人员清楚,外部人员则不清楚。对于 Baidu 提供的外部服务,需要公共 IP 地址,通常由互联网服务提供商提供。例如,如果您的公司使用中国联通访问互联网,您可以让他们为您公司的网关服务器分配一个公共IP地址。网关服务器就像一个交换机,处理所有内部网络通信,并设置转发规则以将传入请求路由到适当的服务器。

  • 有了IP地址,浏览器向该地址发送请求,由操作系统将请求封装成IP数据包,然后通过网络进行传输。网络的路由协议基于提供的 IP 地址并通过各种路由器,最终到达绑定到该 IP 的计算机。
  • 一台计算机上可能部署多个网络应用程序。哪一个应该收到请求?这就是端口发挥作用的地方。每个网络应用程序都可以绑定到一个或多个端口,系统可以防止重叠。在请求中指定端口会将其路由到正确的网络应用程序。

但是当我们访问Baidu时,我们并没有指定端口。这是因为在未指定端口时,将使用默认端口(HTTP 为 80,HTTPS 为 443)。启动网络程序时必须绑定端口,尽管某些框架会自动选择计算机上未使用的端口。

localhost 和 127.0.0.1 有什么区别?

有了上面的基础知识,我们就很容易理解这个问题了。如前所述,localhost 是一个域名。

127.0.0.1 怎么样?它是一个IP地址,当前机器的本地IP地址,只能在本机本身使用。您的计算机无需连接互联网即可使用该IP地址,方便开发和测试网络程序。我们调试的程序都是绑定到这个IP地址的。

值得注意的是,我们常见的IP地址的格式为XXXX,以点分为四段。实际上,它是一个 32 位二进制数,分为四个 8 位段,然后转换为十进制数进行显示。

该解决方案由每台计算机单独处理。每台计算机上都有一个主机文件(/etc/hosts),其中包含一些硬编码的 DNS 解析规则,包括将 localhost 解析为 127.0.0.1 的规则,这是一种约定。

如果您不想使用 localhost,也没关系。您可以将其命名为任何名称,例如 wodehost,并将其解析为 127.0.0.1。

您甚至可以使用 baidu.com,但它仅供您自己使用,不会影响其他任何人。

总结

localhost 和 127.0.0.1 都是用于指向本地计算机的地址,但它们之间存在一些差异:

  1. 表示方式:
    • localhost 是一个域名,它代表本地计算机。
    • 127.0.0.1 是一个ip地址,也代表本地计算机。
  2. 解析方式:
    • localhost 被DNS解析成 127.0.0.1,即本地计算机的IP地址。
    • 127.0.0.1 是一个环回地址,它总是指向本地计算机,不需要经过DNS解析。
  3. 网络传输:
    • localhost 不经过网卡传输,不受网络防火墙和网卡限制。
    • 127.0.0.1 依赖于网卡,会受到防火墙和网卡的限制。
  4. 应用场景:
    • localhost 通常用于本地服务,因为它不会解析成IP,也不会占用网卡、网络资源,因此在某些情况下使用localhost可能会更方便快捷。
    • 127.0.0.1 也可以用来表示本地计算机,但在某些情况下,使用localhost可能会比使用127.0.0.1更方便,因为它可以避免DNS解析的开销。
  5. 特殊用途:
    • Linux上,当使用 localhost 来连接数据库的时候,Mysql会使用Unix domain socket来传输数据,这是一种进程内通信(IPC)机制,不需要经过网络协议栈,因此速度会更快。而使用 127.0.0.1 时,Mysql仍然会使用TCP/IP协议栈来进行数据传输。

综上所述,localhost 和 127.0.0.1 都可以用来表示本地计算机,但它们的表示方式和解析方式不同,且在网络传

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生运维圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
网络编程入门如此简单(四):一文搞懂localhost和127.0.0.1
本文由萤火架构分享,原题“localhost和127.0.0.1的区别是什么?”,原文链接“juejin.cn/post/7321049446443417638”,下文进行了排版和内容优化。
JackJiang
2024/09/26
2950
网络编程入门如此简单(四):一文搞懂localhost和127.0.0.1
localhost 与 127.0.0.1 的区别
localhost和127.0.0.1频繁出现在各种网络及软件开发的场景之中。它们似乎指向同一个意义——那就是你的本地设备。
软件架构师Michael
2024/08/07
1650
网工就该了解:localhost 与 127.0.0.1 的区别
当你使用localhost时,系统会通过DNS(域名系统)解析来将其转换为相应的IP地址。一般情况下,这个过程很快,因为大多数操作系统都会在本地的hosts文件中对localhost进行映射,使其指向127.0.0.1或类似的环回地址。相反,使用127.0.0.1时,由于它本身就是一个IP地址,因此无需通过DNS解析,数据包直接在本机内部路由。
ICT系统集成阿祥
2024/12/03
1870
网工就该了解:localhost 与 127.0.0.1 的区别
网络地址 0.0.0.0 与回环地址 127.0.0.1 的区别
通常指的是127.0.0.1,而0.0.0.0是一个特殊的地址,用于指代本机的所有IP地址,包括回环地址。
Srlua
2024/03/01
1.4K0
网络地址 0.0.0.0 与回环地址 127.0.0.1 的区别
127.0.0.1 vs 0.0.0.0 vs localhost vs 主机IP
说明:上一篇写完《当你输入URL到页面显示经历了什么--URL到IP地址》之后读了好几本关于网络的书(当然都是跳着读),发现期初想的太简单,还是遗漏了许多,后面等慢慢熟悉了整个网络连接之后再继续写。这次先插播一篇: 本地在做开发的时候肯定会起服务器,这就会牵扯到访问地址的问题:要么自定义域名;要么直接IP地址访问。可是这里的IP地址该用哪个?或者说 127.0.0.1 vs 0.0.0.0 vs localhost vs 主机IP 这些有何区别?下面查阅了一些资料做个分享: localhos
前端黑板报
2018/01/29
3.1K0
127.0.0.1 vs 0.0.0.0 vs localhost vs 主机IP
Appium+python自动化(三十三)- 本地调试测试代码,远程控制测试环境-Remote(超详解)
  在前边所有涉及启动app的时候有这样一行代码driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps),很多小伙伴们和同学们不知道这个ip和端口哪里来的,我觉得有必要给小伙伴解释一下,于是宏哥决定写一篇关于这个appium的服务器ip文章! 来给大家答答疑,解解惑!这样就不会问一些比较幼稚的问题,让别人看了笑话,笑掉大牙了。eg:宏哥,宏哥,宏哥,那个我在测试服务器搭建测试环境,我是不是就只能在测试服务器上调试代码,然后进行测试了。那这样我还的搭建一套别写脚本的环境。。。。等等的傻白寡的问题,Remote 我们先给他相一相面,就知道它的意思是:远程。那么我们是不是把那个IP地址修改成测试服务器的IP,一切问题是不是就迎刃而解了。
北京-宏哥
2019/09/11
5K0
Appium+python自动化(三十三)- 本地调试测试代码,远程控制测试环境-Remote(超详解)
0.0.0.0、127.0.0.1和localhost之间的区别
localhost localhost其实是个域名,而不是一个ip地址。之所以我们经常把localhost与127.0.0.1认为是同一个是因为我们使用的大多数系统上都默认localhost指向了127.0.0.1这个地址。 在linux系统中,/ets/hosts文件中都会有如下内容:
用户1679793
2019/12/31
4.4K0
localhost和127.0.0.1的区别有哪些
localhot的原理是不经网卡传输,不会受到网卡协议的限制。设置程序时本地服务用localhost,localhost不会解析成IP,也不会占用网卡、网络资源。
小狐狸说事
2022/11/17
9940
localhost 和 127.0.0.1 的区别
在使用Linux或其他操作系统时,你可能经常会碰到“localhost”和“127.0.0.1”这两个词。虽然它们联系紧密,但区分它们有助于理解许多网络相关的概念[1]。
数据科学工厂
2024/12/30
5300
localhost 和 127.0.0.1 的区别
猫头虎分享:localhost和127.0.0.1的区别是什么?
在本篇技术博客中,猫头虎博主将带大家深入探索localhost与127.0.0.1的微妙区别。本文适合各级读者,无论你是初学者还是资深开发者,都可以从中获益。我们将覆盖关键词如网络编程、IP地址、DNS解析、IPv4、IPv6、性能差异等,确保你能从百度搜索轻松找到本文。
猫头虎
2024/04/07
1690
【Linux网络#15】:DNS 协议 & ICMP 协议
TCP/IP 中使用 IP 地址和端口号来确定网络上的一台主机的一个程序,但是 IP 地址不方便记忆,于是人们发明了一种叫主机名的东西, 是一个字符串, 并且使用 hosts 文件来描述主机 名和 IP 地址的关系.
IsLand1314
2025/03/04
2140
【Linux网络#15】:DNS 协议 & ICMP 协议
计算机网络之应用层
随着网络技术的发展和网络应用的普及,各方面的网络应用也不断涌现。每类网络应用都需要对应的应用服务支持,“应用层”要解决的问题就是为用户提供所需的应用服务。
CodeGoat24
2022/02/27
1.5K0
计算机网络之应用层
127.0.0.1和0.0.0.0地址的区别
原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。 1. 问题引入 之前在使用tomcat的时候,启动tomcat默认都会绑定到127.0.0.1这个地址,最近在使用hexo写博客的时候发现通过 hexo server命令启动服务的时候绑定的ip地址是0.0.0.0。那么这两个IP地址到底有什么不同呢在讲解两个地址的不同之前,我们先回顾一下IP地址的基础知识。 2. IP地址分类 2.1 IP地址表示 IP地址由两个部分组成,net-id和host-id,即网络号和主机号。 net
xjjdog
2020/02/28
7.9K0
127.0.0.1和0.0.0.0地址的区别
彻底明白127.0.0.1和0.0.0.0地址的区别是什么?
首先,0.0.0.0是不能被ping通的。0.0.0.0称为“unspecified”,即未指定(即无效的,无意义的)地址。从功能上看,一般用于某些程序/网络协议中不便使用具体ip的特殊情况(说白了就是一个用于某些比较坑的情况的“占位符”),比如DHCP客户端还未获取到ip的时候规定使用0.0.0.0作“源地址”,或者在服务器中,0.0.0.0并不是一个真实的的IP地址,它表示本机中所有的IPV4地址。服务器不指定在哪个网卡上监听时,也使用0.0.0.0,这个时候监听本机中所有IP的端口。
徐建国
2021/12/07
3.4K1
网站基本概念
网站(Website),是指在互联网上,根据一定的规则,使用HTML、PHP等代码语言制作的用于展示特定内容的相关网页的集合,有可供管理人员操作的后台及用户使用的前台。简单地说,Website是一种通讯工具,就像布告栏一样,人们可以通过Website来发布自己想要公开的资讯,或者利用Website来提供相关的网络服务。人们可以通过网页浏览器来访问Website,获取自己需要的资讯或者享受网络服务。
唔仄lo咚锵
2020/09/15
1.4K0
【前端芝士树】从浏览器搜索框输入网址到网页呈现发生了什么?
首先需要搞明白的是,域名和ip地址是不同的,域名是为了更方便记忆ip所产生的,ip才是服务器在网络上的真实地址。
CloudCat
2022/05/06
6140
【前端芝士树】从浏览器搜索框输入网址到网页呈现发生了什么?
17 . Go之网络编程
IP地址实际上是一个32位整数(称为IPv4),以字符串表示的IP地址如`192.168.0.1`实际上是把32位整数按8位分组后的数字表示,目的是便于阅读。 IPv6地址实际上是一个128位整数,它是目前使用的IPv4的升级版,以字符串表示类似于`2001:0db8:85a3:0042:1000:8a2e:0370:7334`。 TCP协议则是建立在IP协议之上的。TCP协议负责在两台计算机之间建立可靠连接,保证数据包按顺序到达。TCP协议会通过握手建立连接,然后,对每个IP包编号,确保对方按顺序收到,如果包丢掉了,就自动重发。 许多常用的更高级的协议都是建立在TCP协议基础上的,比如用于浏览器的HTTP协议、发送邮件的SMTP协议等。 一个TCP报文除了包含要传输的数据外,还包含源IP地址和目标IP地址,源端口和目标端口。 端口有什么作用?在两台计算机通信时,只发IP地址是不够的,因为同一台计算机上跑着多个网络程序。一个TCP报文来了之后,到底是交给浏览器还是QQ,就需要端口号来区分。每个网络程序都向操作系统申请唯一的端口号,这样,两个进程在两台计算机之间建立网络连接就需要各自的IP地址和各自的端口号。 一个进程也可能与多个计算机建立链接,因此他会申请很多端口. ​ 了解了TCP/IP协议的基本概念,IP地址和端口的概念,我们就可以开始进行网络编程了。
iginkgo18
2020/09/27
1.1K0
17 .  Go之网络编程
Windows Server 2003网络负载均衡的实现
       在现行的许多网络应用中,有时一台服务器往往不能满足客户端的要求,此时只能通过增加服务器来解决问题。   那么,有没有一个办法或者技术来解决此类问题呢?使用Windows 2000或Windows Server 2003中的网络负载平衡群集就可以(本文将介绍Windows Server 2003中的网络负载平衡技术的实现方法)。   一、网络负载平衡的优点   1.网络负载平衡允许你将传入的请求传播到最多达32台的服务器上,即可以使用最多32台服务器共同分担对外的网络请求服务。网络负载平衡技术保
张善友
2018/01/19
1.6K0
计算机网络基础(未完待续)
操作系统是管理和控制计算机硬件与软件资源的应用程序,任何其他软件都必须在操作系统的支持下才能运行。
贾维斯Echo
2023/10/18
3570
计算机网络基础(未完待续)
什么是127.0.0.1,如何使用这个IP地址?
127.0.0.1是一个非常有名的IP地址——你甚至可能在T恤上见过它。但它到底是什么,为什么这么有名?
埃文科技
2022/05/26
3.4K0
相关推荐
网络编程入门如此简单(四):一文搞懂localhost和127.0.0.1
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档