news 2026/4/16 15:36:14

域名与 URL 详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
域名与 URL 详解

域名与 URL 详解

目录

  • 概述
  • 域名层级详解
    • 域名层级结构
    • 顶级域名 (TLD)
    • 二级域名 (SLD)
    • 三级/多级域名
    • 两种常见的叫法
    • 常见域名举例
  • URL 结构详解
    • URL 基本结构
    • URL 完整构成
    • URL 各部分详解
  • 域名 vs. 主机名 vs. URL
  • 域名层级与 “www” 的误区
  • URL 查询参数与 Hash 详解
    • 查询参数 (Query String)
    • 片段标识 (Hash/Fragment)
  • HTTP 与 HTTPS 的核心区别
  • 从输入 URL 到页面加载的流程
  • 实际应用示例
  • 总结

概述

域名和 URL 是互联网的基础概念,理解它们对于 Web 开发、网络运维和日常使用都至关重要。本文档将详细解析域名层级结构、URL 组成以及相关知识点,帮助读者全面理解这些概念。

核心概念

  • 域名 (Domain Name):用于定位网站的一串字符,需要通过 DNS 解析为 IP 地址
  • URL (统一资源定位符):定位互联网上具体资源的完整"地址"
  • 主机名 (Hostname):完整的主机地址,格式为"主机名.域名"

域名层级详解

域名层级结构

一个完整的域名由一串用点分隔的字符组成,例如www.baidu.com。它的层级结构从右到左依次为:

┌─────────────────────────────────────┐ │ 域名层级结构(从右到左) │ ├─────────────────────────────────────┤ │ www . baidu . com │ │ ↑ ↑ ↑ │ │ 三级 二级 顶级 │ │ 域名 域名 域名 │ └─────────────────────────────────────┘

层级说明

  1. 顶级域名 (TLD):最右边的部分
  2. 二级域名 (SLD):顶级域名左边的部分
  3. 三级/多级域名:二级域名左边的部分

顶级域名 (TLD)

顶级域名是最右边的部分,如.com.cn.org。它像是域名的"姓",常用于标识类型或国家/地区。

TLD 分类

1. 通用顶级域名 (gTLD)

用于标识网站类型:

域名含义用途
.comCommercial商业网站(最常见)
.netNetwork网络服务
.orgOrganization非营利组织
.eduEducation教育机构
.govGovernment政府机构
.milMilitary军事机构
.infoInformation信息网站
.bizBusiness商业网站
2. 国家代码顶级域名 (ccTLD)

用于标识国家或地区:

域名国家/地区说明
.cn中国中国国家域名
.us美国美国国家域名
.jp日本日本国家域名
.uk英国英国国家域名
.de德国德国国家域名
.fr法国法国国家域名
.hk香港香港特别行政区
.tw台湾台湾地区

TLD 特点

  • 由 ICANN(互联网名称与数字地址分配机构)管理
  • 需要注册才能使用
  • 不同 TLD 有不同的注册要求和价格

二级域名 (SLD)

二级域名是顶级域名左边的部分,如baidu(在baidu.com中)。这是你注册时真正"买"下的名字,是域名的"名"。

特点

  • 需要向域名注册商购买
  • 具有唯一性(在同一个 TLD 下)
  • 是网站的品牌标识
  • 可以自由创建子域名

示例

  • baidu.com中的baidu是二级域名
  • google.com中的google是二级域名
  • qq.com中的qq是二级域名

三级/多级域名

三级域名是在二级域名左边的部分,如wwwnewsmail。它们是二级域名的"子域名",常用于区分不同服务。

常见用途

子域名用途示例
www网站主站www.baidu.com
mail邮件服务mail.google.com
news新闻服务news.qq.com
blog博客服务blog.example.com
apiAPI 服务api.example.com
cdnCDN 服务cdn.example.com
ftpFTP 服务ftp.example.com

多级域名示例

www.news.baidu.com ↑ ↑ ↑ ↑ 四级 三级 二级 顶级

两种常见的叫法

关于"一级域名"的说法存在两种,容易混淆:

1. 技术定义 (RFC标准)

按照 RFC 标准:

  • 顶级域名 (TLD)就是一级域名(如.com
  • baidu.com中的baidu是二级域名

技术层级

www.baidu.com │ │ │ │ │ └─ 一级域名(TLD) │ └─────── 二级域名(SLD) └─────────── 三级域名(子域名)
2. 市场/注册商说法

在域名注册市场中:

  • baidu.com这种可直接注册的整体称为"一级域名"
  • www.baidu.comnews.baidu.com等则被称为"二级域名"或"子域名"

市场层级

www.baidu.com │ │ │ │ └─────┴─ 一级域名(可注册的完整域名) └─────────── 二级域名(子域名)

简单理解:从技术角度看,baidu.com是二级域名;从日常使用角度看,大家常把baidu.com叫做主域名或一级域名。

常见域名举例

完整域名顶级域名 (TLD)二级域名 (SLD)三级域名说明
www.baidu.com.combaiduwwwwww 是主机名,习惯上也叫子域名
zh.wikipedia.org.orgwikipediazh代表中文维基百科
mail.google.com.comgooglemail代表谷歌的邮箱服务
news.qq.com.comqqnews代表腾讯新闻
api.github.com.comgithubapiGitHub 的 API 服务
cdn.jsdelivr.net.netjsdelivrcdnCDN 服务

注意baidu.com/zhidao中的/zhidao是路径,不是域名的一部分。

URL 结构详解

URL 基本结构

URL(Uniform Resource Locator,统一资源定位符)是定位互联网上具体资源的完整"地址"。

基本格式

协议://主机名/路径?查询参数#片段标识

示例解析

https://baijiahao.baidu.com/s?id=1775618156256907871&wfr=spider&for=pc │ │ │ │ │ │ │ │ │ │ └─ 查询参数(Query String) │ │ │ │ └─ 路径(Path) │ │ │ └─ 主机名(Host/Domain) │ │ └─ 协议(Scheme) │ └─ 完整 URL

URL 完整构成

一个完整的 URL 结构比我们之前看到的更丰富,通用格式如下:

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>

完整格式说明

组件说明是否必需
scheme协议(如 http, https, ftp)✅ 必需
user:password@用户认证信息❌ 可选
host主机名或 IP 地址✅ 必需
:port端口号❌ 可选(有默认值)
/path资源路径❌ 可选
;params路径参数❌ 可选
?query查询字符串❌ 可选
#frag片段标识❌ 可选

示例 URL 解析

https://baijiahao.baidu.com/s?id=1775618156256907871&wfr=spider&for=pc为例:

组件示例说明
协议 (Scheme)https://指定访问协议,如 http, https, ftp
用户信息(无)格式为user:password@,常见于 FTP,网页 URL 中通常省略
主机 (Host)baijiahao.baidu.com可以是域名或 IP 地址
端口 (Port)(无)格式为:8080。HTTP 默认为 80,HTTPS 默认为 443,可省略
路径 (Path)/s服务器上资源的具体位置,以/分隔
参数 (Params)(无)为特定协议保留,用;分隔,较少见
查询 (Query)?id=...&wfr=...?开头,用&连接多个key=value键值对,用于向服务器传递数据
片段 (Fragment)(无)#开头,用于定位页面内的锚点,不会发送给服务器

URL 各部分详解

1. 协议 (Scheme)

格式https://http://

说明

  • httpshttp的安全加密版本,默认端口为 443
  • http是超文本传输协议,默认端口为 80
  • 其他协议:ftp://(文件传输)、file://(本地文件)、mailto:(邮件)

常见协议

协议全称默认端口用途
httpHyperText Transfer Protocol80网页传输
httpsHTTP Secure443安全网页传输
ftpFile Transfer Protocol21文件传输
fileFile Protocol-本地文件访问
mailtoMail To-邮件链接
2. 主机名 (Host/Domain)

格式baijiahao.baidu.com

说明

  • 即网站服务器的域名,由域名层级构成
  • 浏览器会通过 DNS 解析,找到它对应的服务器 IP 地址
  • 也可以是 IP 地址(如192.168.1.1

DNS 解析过程

baijiahao.baidu.com ↓ DNS 查询 ↓ 39.156.66.18 (示例 IP)
3. 路径 (Path)

格式/s/path/to/resource

说明

  • 指定服务器上具体资源的位置,类似于电脑上的文件夹路径
  • 这里的/s是百度百家号文章页面的路径标识
  • 路径可以有多级,用/分隔

路径示例

路径说明
/根路径,通常指向首页
/s文章页面路径
/user/profile用户资料页面
/api/v1/usersAPI 接口路径
/images/logo.png静态资源路径
4. 查询字符串 (Query String)

格式?id=1775618156256907871&wfr=spider&for=pc

说明

  • ?开头,用于向服务器传递参数
  • 格式为参数名=参数值
  • 多个参数用&连接

组成部分

部分说明示例
?查询字符串的开始标记?
id=1775618156256907871参数id的值为文章 IDid=1775618156256907871
&用于分隔不同的参数&
wfr=spider&for=pc百度内部的控制参数,用于标识爬虫来源和设备类型等wfr=spider&for=pc

查询参数特点

  • ✅ 参数内容对搜索引擎可见,可能影响 SEO
  • ✅ 可以传递多个参数
  • ✅ 参数值需要进行 URL 编码(如空格编码为%20
  • ⚠️ 为提升可读性,网站常使用"伪静态"URL,如将?id=123优化为/article/123

URL 编码示例

字符URL 编码
空格%20
&%26
=%3D
?%3F
#%23
/%2F
%E4%B8%AD
5. 片段标识 (Fragment)

格式#section2#top

说明

  • #开头,用于定位网页内的某个具体位置(锚点),如章节标题
  • 浏览器只会滚动到该位置,而不会向服务器发送这部分内容
  • 改变#后的内容不会触发页面刷新

使用示例

<!-- HTML 中的锚点 --><h2id="section2">第二节</h2><!-- URL 中使用 -->https://example.com/page#section2

特点

  • ✅ 不会发送给服务器,仅由浏览器在本地处理
  • ✅ 可以用于单页应用(SPA)的路由
  • ✅ 可以用于页面内导航

域名 vs. 主机名 vs. URL

这几个概念关系紧密,但各有侧重:

域名 (Domain Name)

定义:用于定位网站的一串字符,如baidu.com

特点

  • 是网站的品牌标识
  • 需要通过 DNS 解析为 IP 地址才能访问
  • 可以注册和购买

示例

  • baidu.com
  • google.com
  • qq.com

主机名 (Hostname)

定义:指完整的主机地址,格式为主机名.域名

示例:在www.baidu.com中:

  • 主机名/子域名www
  • 域名baidu.com

说明

  • 本质上,主机名是"服务器名 + 域名"的组合
  • 一个域名可以有多个主机名(子域名)
  • 不同的主机名可以指向不同的服务器

主机名示例

主机名域名完整主机名用途
wwwbaidu.comwww.baidu.com网站主站
mailgoogle.commail.google.com邮件服务
apigithub.comapi.github.comAPI 服务
cdnjsdelivr.netcdn.jsdelivr.netCDN 服务

URL (统一资源定位符)

定义:定位互联网上具体资源的完整"地址",是包含协议、主机、路径等信息的"完整网址"

格式协议://主机名/路径?查询参数#片段标识

示例

  • https://www.baidu.com/search?q=test
  • http://example.com/page.html#section1

一句话总结

  • 域名:网站的"名字"
  • 主机名:具体某台服务器的"名字+域名"
  • URL:指向某个具体资源的"完整路径"

域名层级与 “www” 的误区

域名层级

域名从右到左,按.分隔,层级递增:

  1. 顶级域名 (TLD):最右边,如.com.cn
  2. 二级域名 (SLD):TLD 左边,如baidu(在baidu.com中)
  3. 三级域名:二级域名左边,如www(在www.baidu.com中)

“www” 只是子域名

www本质上和mailnews一样,是一个常见的子域名 (主机名),并非特殊的一级域名。

技术说明

  • www.baidu.combaidu.com是不同的主机记录
  • 通常会被网站配置为指向同一网站
  • 可以单独配置 DNS 记录指向不同的服务器

配置示例

DNS 记录: www.baidu.com A 39.156.66.18 baidu.com A 39.156.66.18

"一级域名"的两种说法

1. 技术圈说法

最右边的部分(如.com)是顶级域名(TLD),也常被称为"一级域名"。

技术层级

www.baidu.com │ │ │ │ │ └─ 一级域名(TLD) │ └─────── 二级域名(SLD) └─────────── 三级域名
2. 注册商说法

用户付费注册的整体(如baidu.com)被称为"一级域名",其下的www.baidu.com等被称为"二级域名"。

市场层级

www.baidu.com │ │ │ │ └─────┴─ 一级域名(可注册的完整域名) └─────────── 二级域名(子域名)

URL 查询参数与 Hash 详解

查询参数 (Query String)

格式

?开头,多个参数用&连接,格式为key=value

示例

?id=1775618156256907871&wfr=spider&for=pc
作用

向服务器传递筛选、分页、来源等信息。

常见用途

用途示例
搜索关键词?q=test
分页?page=2&limit=10
筛选?category=tech&sort=date
来源标识?utm_source=google&utm_medium=cpc
文章 ID?id=1775618156256907871
特点
  • ✅ 参数内容对搜索引擎可见,可能影响 SEO
  • ✅ 可以传递多个参数
  • ✅ 参数值需要进行 URL 编码
  • ⚠️ 为提升可读性,网站常使用"伪静态"URL

伪静态 URL 示例

动态 URL: /article?id=123 伪静态 URL:/article/123

片段标识 (Hash/Fragment)

格式

#开头,如#section2

作用

定位页面内的某个锚点(如标题),浏览器会自动滚动到该位置。

HTML 示例

<!-- 定义锚点 --><h2id="section2">第二节</h2><!-- 链接到锚点 --><ahref="#section2">跳转到第二节</a>
特点
  • 不会随请求发送给服务器,仅由浏览器在本地处理
  • ✅ 改变#后的内容不会触发页面刷新
  • ✅ 可以用于单页应用(SPA)的路由

SPA 路由示例

https://example.com/#/home https://example.com/#/about https://example.com/#/contact

查询参数 vs. 片段标识

特性查询参数 (?)片段标识 (#)
发送给服务器✅ 是❌ 否
触发页面刷新✅ 是❌ 否
SEO 可见✅ 是❌ 否
用途传递参数页面内定位/SPA 路由

HTTP 与 HTTPS 的核心区别

特性HTTPHTTPS
全称超文本传输协议安全的超文本传输协议
安全性数据明文传输,不安全数据加密传输,可防窃听和篡改
默认端口80443
证书不需要需要 SSL/TLS 证书
浏览器标识无特殊标识地址栏有安全锁图标
加密方式无加密TLS/SSL 加密
性能较快稍慢(加密开销)
适用场景内部网络、测试环境生产环境、敏感数据传输

HTTPS 工作原理

1. 客户端请求 HTTPS 连接 2. 服务器返回 SSL/TLS 证书 3. 客户端验证证书 4. 建立加密连接 5. 数据传输加密

为什么需要 HTTPS

  • ✅ 防止数据被窃听
  • ✅ 防止数据被篡改
  • ✅ 验证服务器身份
  • ✅ 提升 SEO 排名(搜索引擎偏好 HTTPS)
  • ✅ 浏览器安全标识

从输入 URL 到页面加载的流程

当你在浏览器地址栏输入 URL 并按下回车后,会发生以下过程:

1. 解析 URL

浏览器分析协议、域名、端口、路径等组成部分。

解析结果

协议:https 主机:baijiahao.baidu.com 端口:443(默认) 路径:/s 查询参数:id=1775618156256907871&wfr=spider&for=pc

2. DNS 解析

向 DNS 服务器查询域名对应的 IP 地址。

DNS 查询过程

1. 检查浏览器缓存 2. 检查系统 hosts 文件 3. 查询本地 DNS 服务器 4. 查询根 DNS 服务器 5. 查询顶级域名服务器 6. 查询权威 DNS 服务器 7. 返回 IP 地址

DNS 解析示例

baijiahao.baidu.com ↓ DNS 查询 ↓ 39.156.66.18

3. 建立连接

根据协议(HTTP/HTTPS)与服务器建立 TCP 连接,HTTPS 还会进行 TLS 握手。

TCP 连接过程

1. 客户端发送 SYN 包 2. 服务器返回 SYN-ACK 包 3. 客户端发送 ACK 包 4. 建立 TCP 连接

HTTPS TLS 握手

1. 客户端发送 Client Hello 2. 服务器返回 Server Hello + 证书 3. 客户端验证证书 4. 客户端发送加密密钥 5. 建立加密连接

4. 发送请求

浏览器向服务器发送 HTTP 请求(包含路径、查询参数等)。

HTTP 请求示例

GET /s?id=1775618156256907871&wfr=spider&for=pc HTTP/1.1 Host: baijiahao.baidu.com User-Agent: Mozilla/5.0 ... Accept: text/html,application/xhtml+xml Accept-Language: zh-CN,zh;q=0.9 Cookie: ...

5. 服务器响应

服务器处理请求,返回 HTML、CSS、JS 等资源。

HTTP 响应示例

HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8 Content-Length: 12345 Set-Cookie: ... <!DOCTYPE html> <html> ... </html>

6. 渲染页面

浏览器解析并渲染资源,最终呈现完整的网页。

渲染过程

1. 解析 HTML,构建 DOM 树 2. 解析 CSS,构建 CSSOM 树 3. 合并 DOM 和 CSSOM,构建渲染树 4. 布局(Layout) 5. 绘制(Paint) 6. 合成(Composite)

完整流程图

输入 URL ↓ 解析 URL ↓ DNS 解析 ↓ 建立 TCP 连接 ↓ HTTPS TLS 握手(如需要) ↓ 发送 HTTP 请求 ↓ 服务器处理请求 ↓ 返回 HTTP 响应 ↓ 浏览器解析 HTML ↓ 加载 CSS、JS 等资源 ↓ 渲染页面 ↓ 显示完整网页

实际应用示例

示例 1:完整的 URL 解析

URL

https://www.example.com:8080/api/v1/users?id=123&page=1#top

解析结果

组件说明
协议https使用 HTTPS 协议
主机名www.example.com完整主机名
端口8080指定端口(非默认)
路径/api/v1/usersAPI 接口路径
查询参数?id=123&page=1传递用户 ID 和页码
片段标识#top定位到页面顶部

示例 2:不同协议的 URL

协议URL 示例说明
HTTPhttp://example.com普通网页
HTTPShttps://example.com安全网页
FTPftp://ftp.example.com/file.txt文件传输
Filefile:///C:/path/to/file.html本地文件
Mailtomailto:user@example.com邮件链接

示例 3:查询参数的使用

搜索功能

https://www.google.com/search?q=test&hl=zh-CN

参数说明

  • q=test:搜索关键词
  • hl=zh-CN:语言设置

分页功能

https://www.example.com/articles?page=2&limit=20&sort=date

参数说明

  • page=2:第 2 页
  • limit=20:每页 20 条
  • sort=date:按日期排序

示例 4:片段标识的使用

页面内导航

https://example.com/article#section2

SPA 路由

https://example.com/#/home https://example.com/#/about https://example.com/#/contact

总结

核心概念总结

  1. 域名层级

    • 从右到左:顶级域名 → 二级域名 → 三级域名
    • 技术定义和市场定义存在差异
    • www只是普通的子域名
  2. URL 结构

    • 协议 + 主机名 + 路径 + 查询参数 + 片段标识
    • 每个部分都有特定的作用和格式
  3. 关键区别

    • 域名 vs. 主机名 vs. URL
    • HTTP vs. HTTPS
    • 查询参数 vs. 片段标识

实际应用建议

  1. 域名选择

    • 选择易记、有意义的域名
    • 考虑 SEO 和品牌因素
    • 选择合适的 TLD
  2. URL 设计

    • 使用有意义的路径
    • 考虑使用伪静态 URL
    • 合理使用查询参数
  3. 安全性

    • 生产环境使用 HTTPS
    • 正确配置 SSL/TLS 证书
    • 注意敏感信息的传递
  4. SEO 优化

    • 使用友好的 URL 结构
    • 避免过长的查询参数
    • 合理使用片段标识

常见问题

Q:www是必需的吗?

A: 不是。www只是习惯用法,技术上example.comwww.example.com可以指向不同的服务器。

Q: 查询参数和片段标识的区别?

A: 查询参数会发送给服务器,片段标识不会。查询参数用于传递数据,片段标识用于页面内定位。

Q: HTTP 和 HTTPS 的区别?

A: HTTPS 是 HTTP 的安全版本,使用 TLS/SSL 加密传输,默认端口 443。

Q: 域名和 IP 地址的关系?

A: 域名需要通过 DNS 解析为 IP 地址才能访问。域名便于记忆,IP 地址是实际的网络地址。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 3:43:24

从系统集成点识别跨团队遗漏的测试场景

感谢大家过去一年对我的支持&#xff0c;如果方便请帮忙投个票&#xff0c;衷心感谢&#xff01; 投票链接&#xff1a; https://www.csdn.net/blogstar2025/detail/002 在很多技术团队中&#xff0c;都会出现一种颇具迷惑性的现象&#xff1a; 单个系统测试充分、质量…

作者头像 李华
网站建设 2026/4/16 13:36:40

Ubuntu 使用 systemd + Nginx 部署 code-server(含 HTTPS)

一、code-server 简介 code-server 是 Coder 团队开源的项目&#xff0c;它可以让你在浏览器中运行 VS Code&#xff0c;实现远程开发环境的统一管理&#xff0c;适用于&#xff1a; 云服务器远程开发内网 / 局域网开发CI / 开发机统一环境无法安装 VS Code 客户端的场景 Gi…

作者头像 李华
网站建设 2026/4/16 13:31:24

ai做项目应该每个子功能跑通之后让ai整合起来

你说得非常对&#xff01;在使用 AI 辅助开发项目时&#xff0c;“分而治之、逐个验证、再整合” 是一种高效且稳健的策略。这种做法有以下几个关键优势&#xff1a; ✅ 1. 降低调试难度 如果多个子功能尚未验证就直接整合&#xff0c;一旦出错&#xff0c;很难判断是哪个模块…

作者头像 李华
网站建设 2026/4/16 8:57:27

“技术核心”到“产品落地

从“技术核心”到“产品落地”&#xff0c;这正是创造价值的闭环。在轨道交通AI领域&#xff0c;目前国内外已经涌现出一批优秀的产品和解决方案&#xff0c;它们是你学习和寻找方向的绝佳参考。这些产品分为几大类&#xff0c;并分析其核心AI技术和价值点&#xff1a;一、 智能…

作者头像 李华