准备上线一个网站之前,你会遇到两个相关但不同的概念:域名和完整URL。混淆它们可能导致与协作者沟通出错,或在配置文件中粘贴错误的地址。本文使用一个明确标注为假设的地址,展示每个部分的含义以及如何保留一份有用的记录。
域名与完整URL分别回答什么问题
假设你正在规划一个小型个人笔记站点,在草稿阶段写下了地址 https://example.org/notes/first-page?view=compact#intro 作为占位符。这个地址完全是假设的,它不指向任何真实页面,也没有服务器会响应该请求。它在这里的唯一目的是给我们一个可以拆解和标注的具体字符串。
域名回答的问题是「我要访问互联网上的哪台服务器」。域名是互联网基础设施的关键部分,它为任何可用的网络服务器提供人类可读的地址,因为IP地址难以记忆并且可能随时间变化。在本例中,example.org就是域名部分,它标识了主机,但没有指定你想获取该主机上的哪个具体资源。12
完整URL回答的是一个更细致的问题:「在那台服务器上,通过什么方法访问哪个具体资源,附带哪些额外指令」。URL是互联网上唯一资源的地址,由不同部分组成,有些是必需的,有些是可选的。域名只是URL中的一个组成部分;字符串的其余部分将请求缩小到特定页面、传递参数或指向该页面中的某个位置。3
在本例中标出各组成部分
我们从左到右拆解 https://example.org/notes/first-page?view=compact#intro。方案是https,表示浏览器请求资源时必须使用的协议。权限部分包含域名example.org。权限之后是路径/notes/first-page,代表资源在服务器上的位置。问号引出查询字符串view=compact,井号引出片段标识符intro。3
两个标点符号值得特别注意,因为它们充当各部分之间的分界。问号表示其后的所有内容都是提供给服务器的参数,格式为键值对。井号表示其后的内容是对资源本身另一部分的锚点,相当于文档内部的一个书签。这两个标点都不属于路径;它们各自开启地址的一个新部分。3
在字符串旁边写下这些标签是一个有用的习惯。你可以这样记录:方案等于https,主机等于example.org,路径等于/notes/first-page,查询等于view=compact,片段等于intro。按这个顺序保留标签与字符串本身的结构一致,之后在对比变体时更容易发现遗漏或错位的组成部分。
保持主机不变,对比不同路径和查询字符串
现在保持主机部分example.org不变,想象两个替代地址:https://example.org/notes/second-page 和 https://example.org/notes/first-page?view=full。第一个替代只改变了路径,指向同一服务器上的不同资源。第二个替代保持路径不变,但将查询参数从compact改为full。在两种情况下,域名和方案都完全相同。
这个对比突出了一个重要区别。路径决定请求的是哪个资源,而查询字符串提供服务器在返回资源之前可以使用的额外参数。改变路径通常意味着请求不同的页面或文件;改变查询则意味着在相同页面下请求不同的条件或显示设置。我们在这里描述的是字符串的结构,而不是对任何特定服务器如何处理这些请求做出断言。3
你还可以完全去掉片段。如果从原始地址中删除#intro,剩下的是 https://example.org/notes/first-page?view=compact,它仍然指向相同的资源并带有相同的参数,只是不再指示浏览器滚动到特定书签位置。片段是可选的,它的缺失不会改变所请求的资源。观察字符串本身的这些差异就是本练习的重点;你不需要一个真实运行的服务器来练习这样阅读地址。
为假设项目制作地址说明卡
记录一张简短的地址说明卡,用于项目中将使用的每个地址。对于我们的假设笔记站点,卡片可以包含四个字段:用途、完整地址、主机和路径。用途字段用日常语言说明该地址的用途,例如「个人笔记首页的紧凑视图」。完整地址字段保存你打算使用的完整URL。主机和路径字段分别列出最常被引用的两个部分。
把卡片写成容易复制到文本文件、项目wiki或共享文档中的格式。每行一个字段的纯文本格式效果不错,因为它避免了格式依赖。如果之后添加查询参数或片段,将它们附加到完整地址字段,并在卡片旁边用简短注释说明其作用。目标是让你一眼就能看到答案,而不必从记忆中重新推导结构。
如果你的项目最终会有多个地址,为每个地址制作一张卡片,并将它们归在一个以项目命名的共享标题下。这样可以把相关地址放在一起,方便检查两个地址是否共享相同主机但路径不同,或者某个查询参数是否被意外地从一张卡片复制到了另一张。
手工核对你的地址说明卡
检查你的说明卡是否与实际字符串一致,方法是将完整地址复制到一个纯文本编辑器中,然后手动标注每个片段。在每个边界字符之后放置注释或方括号:标记方案结束的位置、主机结束的位置、路径开始和结束的位置、查询开始的位置以及片段开始的位置。这种手动检查能发现快速阅读时容易忽略的字符错位、遗漏的斜杠或多余的问号。
将标注后的片段与卡片上的字段逐一对比。如果卡片上的主机字段写的是example.org,但编辑器中标注的片段显示的是带尾部斜杠的example.org/,你就发现了一个值得纠正的差异。对路径、查询和片段重复这个对比。卡片上的每个字段应恰好对应一个标注片段,没有无法解释的多余字符。
每次向项目文档添加新地址时都执行这个核对步骤。每个地址只需片刻时间,但它能在你把记录分享给协作者或粘贴到配置文件之前建立信心。如果发现错误,先修正卡片,然后重新运行对比以确认修正有效。
步骤 1
从你的说明卡中将完整地址复制到一个空白的纯文本文档中。
步骤 2
在每个边界字符之后插入空格或换行:方案分隔符之后、主机之后、问号之前以及井号之前。
步骤 3
标注每个所得片段的角色:方案、主机、路径、查询或片段。
步骤 4
将每个标注片段与说明卡上的对应字段进行对比,记录任何不匹配之处。
保留地址记录供以后使用
将完成的说明卡存放在你随项目推进时会反复查看的位置。项目文件夹中的简单文本文件、个人wiki中的页面或协作工具中的笔记都可以。格式不如习惯重要——关键是每次添加、重命名或删除地址时都更新记录。
当你之后撰写文档、起草社交媒体帖子或向协作者解释站点结构时,可以回头查看卡片而不是从记忆中重建地址。这降低了在面向公众的链接中引入拼写错误的机会。如果你的项目涉及多个路径相似的页面,卡片也让你容易生成一致的命名模式,因为你可以并排查看所有路径。
随着需求变化,你可以选择在卡片上增加额外字段,例如关于某个查询参数为何存在的简短说明,或页面最后一次重命名的时间。关键原则是记录应反映你自己对哪些信息有用的判断。没有唯一要求的格式;价值来自你随时间维护的一份一致且经过核对的参考。
常见问题
域名和URL是同一个东西吗?
不是。域名标识你想访问的服务器,而完整URL包含域名加上方案、路径、查询参数和片段等附加部分,它们共同指定一个特定资源以及访问方式。13
URL中的问号表示什么?
问号将路径与查询字符串分隔开来。问号之后的所有内容都是提供给服务器的键值参数,例如本例中的view=compact。3
练习拆解URL需要有一个真实上线的网站吗?
不需要。你可以使用任何假设的地址字符串来练习识别方案、主机、路径、查询和片段。这个练习的重点是阅读字符串的结构,而不是连接服务器。
What is a Domain Name? - Learn web development | MDN. 采集日期:2026-11-01. ↩︎ ↩︎
How does the Internet work? - Learn web development | MDN. 采集日期:2026-11-01. ↩︎
What is a URL? - Learn web development | MDN. 采集日期:2026-11-01. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎