公众号旧文
一次讲清楚:域、域名、主机名、网址
很多人上网很多年,其实一直在混用几个词:
域
域名
主机名
网址
看起来都像名字,但它们在互联网里,扮演的是完全不同的角色。
如果你搞不清这几个概念,就很容易在技术讨论中似是而非。
一、先从域说起
域不是一台机器,也不是一个网站。
它本质上是:
DNS 里的一个命名空间
你可以把域理解成:
一个管理范围
一个名字的集合
一个层级边界
比如:
example.com
这是一个域。
在这个域下面,你可以拥有很多名字:
api.example.com
mail.example.com
但注意:
域本身并不指向某一台具体主机。
它更像是:
一家公司
一个组织
一个名字的姓氏
二、什么是域名(Domain Name)?
域名是 DNS 体系中用于标识资源的名字。
例如:
- example.com
- www.example.com
- api.example.com
它们在技术上都属于域名,只是层级不同:
- example.com 是一个域名,同时也是一个域
- www.example.com 是 example.com 下的一个子域名
可以将 DNS 理解为一棵树, 每一个域名对应树上的一个节点,而“域”表示该节点及其下属的命名空间。
三、那什么是主机名(Hostname)?
主机名,指的是域中的一个具体节点名。
它通常代表:
一台主机
一个服务节点
一个明确的网络身份
举个具体的例子:
jp1-20260123152340710968.tailffeaeb.ts.net
我们把它拆开:
jp1-20260123152340710968 . tailffeaeb.ts.net
└───────主机名──────┘ └────域────┘
这里:
tailffeaeb.ts.net 是域
jp1-20260123152340710968 是这个域下的一个主机名
组合在一起,构成了一个:
完整限定域名(FQDN)
四、一句话讲清「域名」和「主机名」的区别
这是最容易混的地方,直接给你一句定论:
域名强调“命名空间”,主机名强调“具体节点”。
换个说法:
域名解决的是:
👉 名字怎么组织、怎么分层
主机名解决的是:
👉 你要找的是哪一台、哪一个
五、那网址又是什么?
网址(URL)根本不是 DNS 的概念。
URL 是:
应用层的资源定位方式
一个完整的网址长这样:
https://www.example.com:443/path/to/page?x=1
它包含了很多部分:
| 部分 | 含义 |
|---|---|
https |
协议 |
www.example.com |
域名 / 主机名 |
:443 |
端口 |
/path |
资源路径 |
?x=1 |
查询参数 |
所以:
域名 / 主机名 只是 URL 里的一小部分。
六、一个非常重要但常被忽略的事实
你平时说的“我访问一个网址”,
真正发生的是:
从 URL 中取出域名 / 主机名
通过 DNS 找到 IP
再通过协议(HTTP / HTTPS)访问资源
DNS 只负责:
名字 → IP
它完全不知道:
协议是什么
页面是什么
路径是什么
七、为什么要把这些概念分得这么细?
因为在工程上,它们负责的事情完全不同:
| 概念 | 负责什么 |
|---|---|
| 域 | 命名空间与管理边界 |
| 域名 | DNS 中的一个合法名字 |
| 主机名 | 域中的具体节点 |
| IP | 网络位置 |
| URL | 应用层资源定位 |
混用这些词,
讨论就一定会跑偏。
八、最后的总结
你可以用这几句话收尾:
域,是名字的空间; 域名,是空间里的名字; 主机名,是指向具体节点的名字; 网址,是应用层访问资源的方式。
DNS 只关心名字怎么对应到 IP, 至于你访问什么内容,那是另一层的事情。