ITPub博客

首页 > 数据库 > 数据库开发技术 > 理解 localhost 和 127.0.0.1:网络基础与域名解析

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

原创 数据库开发技术 作者:IT枫斗者 时间:2024-12-19 17:31:22 0 删除 编辑


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


本文主要探讨了 localhost 和 127.0.0.1 的区别,涵盖了域名解析、程序访问流程、私有 IP 地址的使用以及多站点共用 IP 的技术等内容。
还介绍了计算机如何通过 hosts 文件将 localhost 解析为 127.0.0.1,以及不同网络环境下 IP 的分配与使用规则。

什么是 localhost?

localhost 是一个常见的域名,它和我们日常上网使用的域名没有本质的区别,目的主要是为了方便记忆。然而,localhost 只在本机有效,正如它的名字所示,“local” 代表本地。

每个人的计算机上都可以使用 localhost,而每个人访问的都是各自机器上的资源内容,不会有冲突。


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

要理解 localhost 的工作原理,我们可以从域名访问程序的流程入手。

以访问百度为例,步骤如下:

  • 用户在浏览器输入 baidu.com,浏览器首先通过 DNS 查询 baidu.com 对应的 IP 地址。
  • 这里需要 IP 地址,是因为网络通信类似于邮递快递,需要通过地址(即 IP)才能准确送达。
  • 得到 IP 地址后,浏览器通过操作系统将请求打包成 IP 请求包,并发送到网络中。网络路由会将请求从源地址转发到目标地址,最终到达绑定该 IP 的计算机。
  • 计算机上可能有多个应用程序在运行,因此请求需要通过端口号来确定要发送到哪个程序。

访问百度时,我们不需要指定端口,因为默认使用 HTTP 协议的端口 80,HTTPS 协议使用端口 443。

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):

位于域名的最右端,表示域名的类型或所在国家,如 .com、.cn。

二级域名(SLD):

通常是公司或品牌的名称,如 baidu.com 中的 baidu。

三级域名:

用于指向特定的子站点或服务器,如 中的 www。

localhost 是一个特殊的顶级域名,只能解析到本机,它没有二级或三级域名。


多网站共享一个 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;}
通过配置主机头,多个网站可以共享端口 80,同时 Nginx 会根据请求中的域名(如 example1.com)将流量转发到正确的应用程序。

私有 IP 地址

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


IPv4 私有地址段包括:

A 类:10.0.0.0 - 10.255.255.255
B 类:172.16.0.0 - 172.31.255.255
C 类:192.168.0.0 - 192.168.255.255

这些地址用于局域网内的通信,如果你要通过互联网进行访问,必须通过公网 IP 进行转发。

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跳槽网’, 为你的求职之路提供全方位支持,助你快速找到理想工作



—END—



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

请登录后发表评论 登录
全部评论
大家好,我是枫哥,🌟阿里云技术专家、📝资深面试官、🌹Java跳蚤网课堂创始人。技术交流vx:itfdz666,拥有多年一线研发经验,曾就职过科大讯飞、美团网、平安等公司。看面试实战视频可以关注b站号:IT枫斗者–Java面试。需要看技术文章,可以关注CSDN:IT枫斗者。

注册时间:2020-05-13

  • 博文量
    183
  • 访问量
    81324