第一次准备网站时,浏览器地址栏里那串字符看起来像一整块没有区分的文本。弄清楚每个部分的含义,能帮助你规划页面结构、与协作者清楚沟通,并在地址上线之前发现拼写或格式上的问题。
域名与完整URL分别回答什么问题
域名回答的是一个具体问题:互联网上哪台服务器应当处理这次请求?域名是互联网基础设施的关键组成部分,它为网络上任何可用的服务器提供了一个人类可读的地址,因为计算机实际使用的数字IP地址既难以记忆,也可能随时间变化。完整URL回答的是一个更宽泛的问题:我想要的资源确切在哪里,浏览器应当通过什么方式获取它?URL是互联网上唯一资源的地址,也是浏览器用来检索HTML页面、图片、样式表等已发布资源的关键机制之一。12
用日常场景来理解这个区别:域名相当于一栋大楼的名字,而完整URL在大楼名字的基础上加上了楼层、房间号,甚至标注了你要找的是房间里哪张桌子。在启动任何项目之前,了解这两个层级的区别,能帮助你决定哪些内容作为简单入口分享给访客,哪些内容保留为内部页面结构。
对于第一次搭建个人网站或小型项目的读者来说,这个区别有直接的实际意义。你通常会在对话或名片上分享域名,但网站上的每一个页面、每一张图片、每一份文档都有各自独立的完整URL。有意识地规划这两个层级,而不是让它们随意累积,能让你的网站更容易导航,也更容易向别人描述。
在本例中标出地址的各个组成部分
本练习使用一个假设地址:https://example.org/notes/first-page?view=compact#intro。这个地址纯粹是为了练习拆解URL字符串而构造的,它不指向一个真实上线的页面,也没有任何服务器预期会响应它。
第一部分https是协议方案,它告诉浏览器请求资源时应当使用哪种协议。接下来是example.org,这是主机部分,标识被请求的服务器。主机之后,/notes/first-page是路径,指明该服务器上特定资源的位置。问号标志着查询字符串的开始:view=compact是一组键值参数,向服务器提供额外信息。最后,井号引导片段:intro指向资源本身内部的一个书签位置,为浏览器指示应当展示该资源中哪个特定位置的内容。2
每个分隔符在字符串中都有固定的角色。问号始终引导查询部分,井号始终引导片段部分。识别这两个标记,就能系统地阅读任何URL,即使你从未见过那个特定地址。协议方案与主机合在一起构成了标识服务器的部分,而主机之后的所有内容则在缩小范围,指明你要定位的是哪个资源以及资源中的哪个位置。2
保持主机不变,对比不同路径与查询字符串
现在保持主机部分example.org不变,只改变其他组成。考虑这个地址:https://example.org/notes/second-page?view=full。协议方案和主机与原始示例完全相同,但路径指向了不同的资源标签,查询参数也携带了不同的值。这串字符明显不同,浏览器会将其视为与原始示例不同的独立地址。
再考虑去掉片段的版本:https://example.org/notes/first-page?view=compact。与原始示例唯一的区别是缺少了#intro部分。由于片段标识符不会随请求发送给服务器,去掉它只会改变浏览器加载页面后滚动到的位置,而不会改变服务器被要求返回的资源。这个观察来自对URL规范结构的阅读,而非对任何特定服务器的测试。2
这些对比说明了一个对规划自己网站有用的原则:改变路径意味着请求了不同的资源;改变查询意味着随请求附带的额外指令不同;改变片段只影响浏览器在已加载资源中将读者定位到哪个位置。我们在这里观察的是字符串的结构,并不对任何特定服务器如何响应这些地址做出推断。
为假设项目制作一张地址说明卡
记录你的假设项目地址的目的、完整地址以及各组成部分,写在一张卡片或一条笔记中。这是一个个人组织步骤,不是任何技术规范的要求,但它能帮助你在项目增长、页面增多时保持一致性。
以我们的示例为例,说明卡可以这样写。目的:用于学习URL结构的练习页面。完整地址:https://example.org/notes/first-page?view=compact#intro。协议方案:https。主机:example.org。路径:/notes/first-page。查询:view=compact。片段:intro。每一行都很短,但合在一起就给出了这个地址包含什么以及为什么这样构成的完整快照。
在说明卡旁边写下你选择每个值的原因。例如,你可以注明路径使用了类似文件夹的标签notes,后跟页面名称first-page,因为你计划将相关页面归入同一目录。你也可以注明查询参数的存在是为了允许不同的显示模式,而不必创建单独的页面。这些理由是你自己的规划决定,现在记录下来,几个月后回顾结构或将项目交给别人时能节省时间。
用手工复制与逐项标记核对说明卡
说明卡写好后,一次快速的手工检查就能在你正式使用这个地址之前发现拼写错误、缺失的分隔符或标错的部分。以下步骤是作者建议的个人复核习惯,不是任何标准的要求。
如果任何部分不匹配,就修正说明卡并重复检查。这个阶段的大多数错误都是简单的输入失误:缺少一个斜杠、问号被放在了片段之后、主机名拼错了一个字母。在纸面上发现它们,远比在地址已经分享给协作者之后才发现要容易得多。
这个核对过程只需要一分钟,但它能培养一种有意识地阅读地址的习惯,而不是不加检查地复制粘贴。随着时间推移,这个过程会变得自动化,你将能一眼看出结构上的问题。
步骤 1
将说明卡上的完整地址复制到一个纯文本编辑器中,这样你可以看到它而不受浏览器格式化或自动链接的影响。
步骤 2
在文本中直接标注每个段落:先标记协议方案,再标记主机,然后是路径,接着是查询,最后是片段,在每个部分旁边使用方括号或注释。
步骤 3
将你的标注与说明卡上的条目逐一比对,确认问号出现在查询之前,井号出现在片段之前。
保留这份说明供以后写作或沟通使用
核对完成后,将说明卡存放在你确实会再次查看的地方:项目说明文件、共享笔记,或者网站主配置文件的顶部注释。说明卡的价值不在于创建它的那一次,而在于当问题出现时你有一份稳定的参考。
检查说明卡每当你添加新页面或更改参数名称时。如果新地址遵循与说明卡上相同的模式,你可以确信结构是一致的。如果出现了偏差,判断这个偏差是否有意为之,并更新说明卡以反映新的实际情况。这样能让你的文档保持诚实,而不需要任何特殊工具。
你可能会发现说明卡在向不熟悉URL的人解释你的网站时也很有用。与其指着一长串字符说这就是地址,不如逐个展开每个已标注的部分,解释它控制什么。这一小小的准备工作能让协作更顺畅,减少两个人对同一串字符产生不同理解时的来回确认。
常见问题
域名和URL是同一个东西吗?
不是。域名标识的是服务器,而URL是完整的地址,还包含协议方案、路径以及可选的查询或片段。域名是URL内部的一个组成部分。12
URL中的片段部分会发送给服务器吗?
不会。片段标识符位于井号之后,它不会随请求发送给服务器,只告诉浏览器在已加载的资源中滚动到哪个位置。2
上线网站之前需要理解URL的每一个部分吗?
不需要掌握所有边界情况,但了解协议方案、主机、路径和查询有助于你规划页面结构并清楚地传达地址。片段对初始规划来说是最不关键的,因为它只影响页面内的定位。
What is a Domain Name? - Learn web development | MDN. 采集日期:2026-11-01. ↩︎ ↩︎
What is a URL? - Learn web development | MDN. 采集日期:2026-11-01. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎