当前位置: 首页 > news >正文

localhost和127.0.0.1的区别

前端项目在本地调试时,通常与localhost进行交互——只需运行npm run命令即可在浏览器中打开网页,地址栏会显示类似http://localhost:xxx/index.html的地址。

1. localhost

本质上是一个域名,与日常访问互联网使用的域名(如baidu.com)没什么根本差异,只是更便于记忆。作用范围仅限于本机:从名称中的"local"(本地)即可知,它指向当前设备本身。不同用户(如张三和李四)可以在各自电脑上互不干扰地使用localhost,访问的始终是本机的页面内容。
要理解localhost,需先了解用户通过域名访问程序的完整流程。以访问baidu.com为例:

1.1 浏览器输入baidu.com后,首先向DNS查询该域名对应的IP地址。

为什么需要IP地址?类比快递寄送:邮寄包裹需填写收件方公司地址、名称和接收人信息。快递系统依赖物理地址进行路由最终送达。网络世界中域名如同公司名称,IP地址则是物理地址。数据包传输必须依赖IP地址定位目标程序。

DNS就像企业通讯录,记录着域名与IP的映射关系。未注册的域名无法查询到IP,而某些域名可能对应多个IP(DNS会根据规则返回其中一个)。购买域名后,域名服务商通常会提供DNS解析服务,将域名与IP的对应关系注册到DNS系统中。

IP地址来源:所有联网设备都拥有IP地址,但个人电脑的IP通常不适合直接对外提供服务(如同公司内部位置只有内部人员清楚)。像Baidu这样的对外服务需要公网IP,一般由网络服务商(如中国移动)分配给企业网关服务器。网关服务器如同总机接线员,处理所有内外网通信,并通过转发规则将外部请求导向内部服务器。

1.2 获取IP后,浏览器向该地址发送请求

操作系统将请求打包为IP数据包,通过网络路由协议经由多个路由器传输,最终抵达绑定该IP的计算机。

1.3 单台计算机可能部署多个网络应用

如何确定接收请求的程序?此时端口(Port)发挥作用:每个网络应用可绑定一个或多个端口(系统禁止端口冲突)。请求中指定端口即可路由到正确程序。
访问Baidu时没有显式指定端口,是因为默认使用标准端口(HTTP为80,HTTPS为443)。启动网络程序时必须绑定端口,部分框架会自动选择本机空闲端口。

2. localhost与127.0.0.1的区别

• localhost是域名
• 127.0.0.1是IP地址,特指本地环回地址(loopback address),仅能在本机使用。该地址无需联网即可访问,极大便利网络程序的开发测试。我们调试的程序正是绑定在此IP上。

localhost如何解析为127.0.0.1?需要经过DNS吗?
答案是不需要。每台计算机都可不经DNS解析直接使用localhost和127.0.0.1。 解析由各设备自主完成:所有操作系统 hosts文件 中均预设了硬编码的DNS解析规则,其中包含"localhost → 127.0.0.1"的映射。你可以使用自定义名称(如wodehost)并映射到127.0.0.1,甚至可以将baidu.com指向127.0.0.1(仅对本机生效)。

补充:域名层级体系

localhost与常规域名(如www.juejin.cn、csdn.net)形态不同。为什么localhost不需要cn/com/net等后缀?

域名采用分层结构:
顶级域名(TLD):位于最右侧,分为通用顶级域(.com商业/.net网络/.org非营利)和国家代码顶级域(.cn中国/.uk英国)。
二级域名(SLD):注册者自选名称(如juejin.cn)。用户通常申请的就是二级域名,TLD的实际意义已被弱化 。
三级域名(3LD):用于指向特定服务器或子网(如blog.example.com中的"blog")。最常见的"www"仅是惯例(现多推荐直接使用二级域名访问)。

按照这种定义,localhost可视为保留的顶级域名,专用于访问本机。

http://www.dtcms.com/a/348429.html

相关文章:

  • 界面规范7-可左右拖动的分割条
  • MATLAB GUI 设计入门:用 Guide 工具快速搭建交互界面
  • React Hooks useEffect的使用
  • React 18+ 并发模式异常
  • Linux服务测试题(DNS,NFS,DHCP,HTTP)
  • pytorch线性回归(二)
  • ⭐CVPR2025 病理分析全能模型 CPath-Omni 横空出世
  • RAG智能问答为什么需要进行Rerank?
  • 春秋云镜 Flarum
  • UCIE Specification详解(二)
  • Linux学习-TCP网络协议
  • 基于springboot的高校后勤保修服务系统/基于android的高校后勤保修服务系统app
  • openFeign用的什么协议,dubbo用的什么协议
  • 【重学MySQL】八十七. 触发器管理全攻略:SHOW TRIGGERS与DROP TRIGGER实战详解
  • k8s下的网络通信之calico与调度
  • MySQL官方C/C++ 接口入门
  • 从栈到堆:深入理解C语言静态与动态链表的创建与管理
  • 利旧小天才儿童电话手表实现“一键寻车”功能
  • 线程整理文档
  • 使用UE5开发《红色警戒3》类战略养成游戏的硬件配置指南
  • 【Spring Cloud 微服务】3.智能路由器——深入理解与配置负载均衡
  • MySQL的更新语句执行过程涉及了哪些文件的写入,衍生了redo、undo、二进制日志在什么时候进行写入
  • 从 JUnit 深入理解 Java 注解与反射机制
  • HarmonyOS NEXT系列之元服务框架ASCF
  • 波兰密码破译机bomba:二战密码战的隐形功臣
  • 深入OpenHarmony OTA硬核升级
  • ComfyUI ZLUDA AMD conda 使用遇到的问题
  • stm32温控大棚测控系统(CO2+温湿度+光照)+仿真
  • Docker 容器(一)
  • 【ansible】5.在受管主机部署文件和Jinja2模板