如果你正在准备第一个网站,会遇到两个相关但不同的概念:域名和完整URL。混淆它们可能导致与协作者沟通出错,或者在设置页面时犯低级错误。本文用一个假设地址来展示每个概念分别覆盖什么内容,以及如何为自己保留一份清晰的记录。
域名与完整URL分别回答什么问题
假设你正在规划一个小型个人网站,用来发布简短的读书笔记。你希望访客能方便地找到这个站点,同时也希望每篇笔记都有自己的地址。这两种需求对应两个不同的概念。域名是互联网上为网络服务器提供的、人类可读的地址。正如MDN所解释的,域名之所以存在,是因为IP地址对人类来说难以记忆,而且可能随时间变化,所以一个稳定、可读的名称解决了这个问题。1
完整URL则更进一步。它是互联网上某个唯一资源的地址,不仅告诉浏览器该联系哪台服务器,还指明要从该服务器获取哪个具体的页面、图片或文档。换句话说,域名回答的是「哪个站点?」而完整URL回答的是「该站点上的哪个具体资源?」2
本文余下的部分将围绕一个假设地址展开:https://example.org/notes/first-page?view=compact#intro。这个地址并不指向一个真实存在的页面,它纯粹作为一段可以被拆解和标注的字符串而存在。把一个固定的例子摆在面前,更容易看清每个部分如何构成整体。
标注示例地址的每个部分
我们从左到右逐步查看这个示例。字符串以https开头,这是协议方案,表示浏览器请求资源时必须使用的协议。接下来是example.org,这是域名,标识了目标网络服务器。域名之后是路径/notes/first-page,告诉服务器正在请求哪个资源。问号引出查询字符串view=compact,向服务器提供额外参数。最后,井号引出片段intro,它相当于资源内部的一个书签。2
有两个标点符号值得特别关注,因为它们标示了各部分之间的分界。问号始终引出URL的查询部分,问号与井号之间(或字符串末尾之前)的所有内容都是键值对形式的参数,服务器可以使用它们。井号始终引出片段标识符,片段不会随请求发送给服务器,而是告诉浏览器在已加载的文档中滚动或跳转到哪个位置。2
把这些标签写在字符串旁边——无论用纸笔还是文本文件——都是一个有用的习惯。当你能指着每一段并说出它的名称时,就不容易把域名和完整地址混为一谈,也不容易把查询参数误认为路径的一部分。
同一主机、不同路径与查询
现在保持主机部分example.org完全不变,只改变它后面的内容。如果路径从/notes/first-page变成/notes/second-page,域名和协议方案都没有改变,只有被请求的资源不同了。如果你再添加一个参数,使查询变为view=compact&sort=date,你只是扩展了查询字符串,路径和片段都没有被触碰。
这些变化说明了一个要点:域名在同一站点的许多页面之间保持不变,而路径、查询和片段会变化,用来定位不同的资源或调整它们的显示方式。仅凭观察字符串本身就能看出哪些部分发生了变化。你不需要了解服务器如何处理每个请求,就能阅读和比较这些地址。
当你审阅自己项目的地址列表时,先找主机部分。如果各条目的主机相同,说明你在看同一站点上的不同资源。如果主机不同,说明你在看完全不同的服务器。这个简单的检查能帮助你在发布之前整理链接、发现复制粘贴错误。
制作一张地址说明卡
记录你计划使用的每个地址的用途。对于这个假设的读书笔记项目,你可以这样写:「这个地址以紧凑布局显示第一篇读书笔记,并滚动到引言部分。」用日常语言说明用途,能迫使你确认URL的每个部分在做什么。
在用途说明下方,列出完整地址,然后把它拆分成带标签的各部分:协议方案(https)、域名(example.org)、路径(/notes/first-page)、查询(view=compact)、片段(intro)。这张卡片将成为一份快速参考,你可以分享给协作者,也可以在几个月后重新查看,而不必凭记忆重新推导结构。
如果你的项目有多个页面,可以为每个地址做一张卡片,也可以把它们整理成一张表格,列出用途、完整地址和备注等列。格式由你自己决定,目标是拥有一份把每个组成部分分开的书面记录,而不是把地址当作一串不透明的字符串。
手工核对说明卡
说明卡只有在与实际地址字符串一致时才有用。以下步骤是作者建议的简单手工核对方法,你可以在任何文本编辑器中完成。
检查标点符号的边界是否准确。确认问号恰好出现在查询开始的位置,井号恰好出现在片段开始的位置。一个放错位置的问号或井号会改变字符串各部分的归属,即使地址乍看起来仍然合理。
记录你在核对中发现的任何差异,直接标注在卡片上。如果卡片上的路径写的是/notes/first-page,而复制出来的字符串显示的是带下划线的/notes/first_page,请记下这个差别并决定哪个版本是正确的。保留一条可见的修正记录,能帮助你在之后发布的链接中避免重复同样的错误。
步骤 1
从你的说明卡上复制完整地址,粘贴到文本编辑器中的一个空白行。
步骤 2
在粘贴出来的这一行上标注每个段落:标出协议方案在哪里结束、域名在哪里结束、路径从哪里开始、问号在哪里引出查询、井号在哪里引出片段。
步骤 3
将你的标注与卡片上的条目逐项对比。每个部分在拼写、顺序和标点上都应该一致。
保留记录供以后使用
说明卡核对完毕后,把它存放在你真正会去查看的地方。项目文件夹里的一个纯文本文件、你常用的笔记应用中的一条记录、或者电子表格里的一行都可以。重要的选择是一致性:选定一个位置,把所有地址卡片都放在那里,这样你就不必在多个工具之间来回搜索。
当你撰写内容并需要链接到这些地址时,回头查看卡片而不是凭记忆重新输入。这个习惯能减少转写错误,尤其是对于查询字符串和片段这类容易记混的部分。如果你与他人协作,分享卡片能让他们获得和你一样的结构化视角,减少反复确认的沟通成本。
随着时间推移,你可能会决定简化卡片、去掉从不使用的部分,或者增加一列记录你上次核对每个地址的日期。这些都是个人工作流的选择。底层原则始终不变:一份书面的、带标签的地址记录比记忆更可靠,而创建它只需要几分钟。
常见问题
域名和URL是同一个东西吗?
不是。域名标识的是网络服务器,而完整URL标识的是该服务器上的某个具体资源。域名是完整URL字符串中的一个组成部分。12
URL中的问号代表什么?
问号引出查询字符串,其中包含提供给服务器的额外键值对参数。问号与井号之间(或地址末尾之前)的所有内容都属于查询部分。2
井号后面的片段会发送给服务器吗?
不会。井号后面的片段标识符不会随请求发送给服务器。它告诉浏览器在已加载的文档中滚动或跳转到哪个位置。2
What is a Domain Name? - Learn web development | MDN. 采集日期:2026-11-01. ↩︎ ↩︎
What is a URL? - Learn web development | MDN. 采集日期:2026-11-01. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎