


理解 localhost 和 127.0.0.1:网络基础与域名解析




什么是 localhost?

localhost 是一个常见的域名,它和我们日常上网使用的域名没有本质的区别,目的主要是为了方便记忆。然而,localhost 只在本机有效,正如它的名字所示,“local” 代表本地。
每个人的计算机上都可以使用 localhost,而每个人访问的都是各自机器上的资源内容,不会有冲突。

从域名到程序:如何通过域名访问程序?

要理解 localhost 的工作原理,我们可以从域名访问程序的流程入手。
以访问百度为例,步骤如下:

localhost 和 127.0.0.1:它们的区别是什么?

在理解了网络的基本原理之后,我们可以轻松理解 localhost 和 127.0.0.1 之间的区别。
localhost 是一个域名。
127.0.0.1 是本地 IP 地址,它是专门为计算机的本地回环而设计的 IP 地址,意味着它只能在本机上使用,且无需联网。
localhost 和 127.0.0.1 本质上指向的是同一个地址,它们都表示当前计算机本身。通过计算机的 hosts 文件(一般位于 /etc/hosts 或 C:\Windows\System32\drivers\etc\hosts),localhost 被解析为 127.0.0.1。因此,localhost 并不需要通过 DNS 查询,而是由操作系统直接处理。

示例:使用 localhost 和 127.0.0.1
你可以在浏览器中输入 localhost 来访问本地服务,它会被解析为 127.0.0.1,即本机的回环 IP。
你也可以直接输入 127.0.0.1,达到同样的效果。两者最终指向的是本机。

域名的等级划分:localhost 的特殊地位

与我们日常使用的域名(如 baidu.com、juejin.cn)不同,localhost 并不属于常规的域名体系。实际上,localhost 是一个预留的顶级域名,它的唯一作用就是指向本机。

域名的层级结构

顶级域名(TLD):
二级域名(SLD):
三级域名:

多网站共享一个 IP 和端口

尽管多个应用程序不能使用相同的端口,但在 Web 服务器中可以通过主机头(Host Header)来实现多个网站共享同一个 IP 地址和端口。Nginx、Apache 和 IIS 等 Web 服务器通过配置主机头来区分不同的网站。

示例:使用 Nginx 配置虚拟主机
server {listen 80;server_name example1.com;root /var/www/example1;}server {listen 80;server_name example2.com;root /var/www/example2;}

私有 IP 地址

除了 127.0.0.1,还存在一些私有 IP 地址,如 192.168.x.x 和 10.x.x.x。这些地址通常用于局域网内部通信,无法在公网中使用。
IPv4 私有地址段包括:

IPv6:新一代网络协议

由于 IPv4 地址池的有限性,IPv6 应运而生,提供了更广泛的地址空间。IPv6 地址采用 128 位,并以十六进制形式表示。
IPv6 地址示例:2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b
虽然 IPv6 为全球每一粒沙子分配了 IP 地址,但由于兼容性和过渡问题,IPv6 在许多地方还没有完全普及。

总结

总结:
localhost 和 127.0.0.1 都是指向本机的地址,前者是域名,后者是 IP 地址。两者通过 hosts 文件进行解析。
域名的层级结构包括顶级域名、二级域名和三级域名,localhost 是一个特殊的顶级域名。
多个网站可以共享同一个 IP 地址和端口,利用主机头技术。
私有 IP 地址主要用于局域网内,IPv6 提供了更大规模的地址空间。
这些知识是理解网络和域名解析的基础,对于开发者、网络管理员等技术人员至关重要。


👋 大家好,我是枫哥,一名Java后端开发者!我热衷于探索新技术,并在我的微信公众号上分享关于Java 生态和后端开发的知识。
欢迎关注我的公众号,期待与你一起探讨技术的无穷可能!” 目前专注于Java技术分享,覆盖春招、秋招、社招和跳槽相关内容,并提供一对一带徒学习服务。
加入 学徒计划,即可享受内推机会和优质资源,签订协议确保就业无忧。
此外,我们还推出了‘Java跳槽网’, 为你的求职之路提供全方位支持,助你快速找到理想工作




原文作者:IT枫斗者;如有侵权,请联系管理员删除。