在发布第一个网站之前,你会遇到两个经常被混用但回答不同问题的术语:域名和URL。本文通过一个假设的地址字符串逐段标注各部分,并展示一张简短的说明卡如何帮助你组织自己的项目。
域名与完整URL分别回答什么问题
假设你正在准备一个小型个人项目网站,有人问你「你的网站地址是什么」。你可能只回答一个域名,比如example.org,也可能给出一串更长的地址,比如https://example.org/notes/first-page?view=compact#intro。两种回答都没有错,但它们回答的是不同的问题。域名标识的是你想要访问的服务器或服务;完整的URL标识的是该服务器上某个具体的资源。12
域名之所以存在,是因为计算机之间通过数字形式的IP地址通信,而这类地址对人类来说很难记忆和区分。域名为这些数字地址提供了一个人类可读的别名,使得分享和输入变得实际可行。域名的结构从右向左阅读:最右侧的标签是顶级域名,其左侧的标签进一步缩小标识范围。13
URL在域名的基础上增加了更多信息。它指定了请求资源时使用的协议、在服务器上查找的路径,以及可选的额外参数或页面内定位。简而言之,域名回答的是「哪台服务器」,而完整URL回答的是「那台服务器上的哪个资源,以及应该如何请求它」。2
标注假设地址的各个部分
为了让这些定义变得具体,本文接下来的内容都围绕同一个假设地址展开:https://example.org/notes/first-page?view=compact#intro。这个地址纯粹是为了拆解URL字符串的各个组成部分而构造的,不代表一个真实已发布的页面,你不应期待在浏览器中打开它。
第一段https是方案(scheme),它告诉浏览器发起请求时应使用哪种协议。下一段example.org是权限部分(authority),具体来说就是被请求服务器的域名。权限部分之后是路径/notes/first-page,它标识该服务器上的某个特定资源。问号引导查询字符串:view=compact。井号引导片段:intro。这些片段在地址中各自承担不同的角色。2
有两个标点符号值得特别注意,因为它们标示了各部分之间的分界。问号始终标记查询部分的起始位置,问号之后、井号之前的所有内容都属于查询数据。井号始终标记片段部分的起始位置;片段不会随请求发送给服务器,而是告诉浏览器在已返回的资源中定位到哪个位置。识别这两个分隔符,你就能一眼将URL划分为几个主要区域。2
保持主机不变,对比路径与查询
现在保持方案和权限部分固定为https://example.org,只变化路径和查询。考虑三个字符串:/notes/first-page?view=compact、/notes/second-page?view=compact和/notes/first-page?view=full#intro。三者都指向同一台服务器,但各自指向不同的资源或同一资源的不同呈现方式。路径改变的是请求哪个资源;查询改变的是该资源被要求如何表现或展示。2
这个区别在你规划自己的网站结构时很重要。如果只改变查询,你仍然在请求同一个底层资源,只是附带了不同的指令。如果改变路径,你请求的就是一个完全不同的资源。而片段根本不会改变服务器返回的内容,它只影响浏览器在已交付内容中滚动或跳转的位置。2
我们并不推断任何特定服务器实际上会如何处理这些字符串。不同的服务器和应用程序按照各自的规则解释路径和查询。这里对比的目的纯粹是结构性的:通过仔细阅读字符串,你可以分辨哪一部分是资源标识符,哪一部分携带可选指令,哪一部分是本地导航提示。
为假设项目制作地址说明卡
记录一张简短的地址说明卡,在你开始任何实际配置工作之前完成它。卡片只需要四行内容:一句目的说明、完整的地址字符串、每个片段的标签,以及哪些片段是必需的、哪些是可选的备注。以我们的例子来说,目的可以写成「演示如何将URL拆解为各个命名部分,供初学者参考」。
记录完整字符串时要包含方案部分。在规划阶段省略https看似无关紧要,但当你或协作者后续需要区分单独的域名和完整地址时,缺少方案会造成混淆。保留方案可见,能提醒你协议是地址的一部分,而不仅仅是浏览器的默认行为。
在每个片段旁边用通俗语言写下它的角色。例如,在example.org旁边写「域名——标识服务器」;在/notes/first-page旁边写「路径——标识具体资源」;在view=compact旁边写「查询——传递给服务器的可选指令」;在intro旁边写「片段——页面内书签,不发送给服务器」。这个练习只需几分钟,却能产出一份你随时可以回顾的参考记录,无论是解释地址还是排查问题都用得上。
手工核对说明卡
检查你的地址说明卡是否与原始字符串一致,方法是把完整URL复制到纯文本编辑器中,在每个分隔符前插入空格或换行。在分隔方案与权限部分的冒号加双斜杠之后放一个断点,在路径开始的第一个斜杠之前放一个断点,在问号之前放一个断点,在井号之前放一个断点。最终你应该得到五个清晰分开的片段:方案、权限、路径、查询和片段。
将每个片段与卡片上的标签逐一对照。如果卡片上标注某部分为「路径」,但权限与问号之间的文本为空,说明存在不匹配。如果卡片列出了片段,但字符串中没有井号,说明卡片记录不准确。这种逐项对比能捕捉最常见的初学者失误:遗漏方案、混淆查询与片段,或者误判路径与查询的边界。
记录你完成核对的日期和你所验证的字符串版本。如果项目后续演进、地址发生变化,你就有了一份清晰的前后对照轨迹。当多人协作维护同一个网站时,这个习惯尤其有用,因为它为所有人提供了一份共享的、带注释的参考,而不必依赖记忆或零散的聊天消息。
步骤 1
将完整URL复制到纯文本编辑器中。
步骤 2
在每个分隔符处插入换行:在://之后、路径第一个斜杠之前、问号之前、井号之前各断一行。
步骤 3
将得到的每个片段与地址说明卡上的标签逐一对比,修正任何不匹配之处。
步骤 4
在卡片上注明核对日期和字符串版本,留作日后参考。
保留记录供日后使用
把完成的地址说明卡存放在你确实会回顾的地方:项目笔记本、专门的备忘文件,或者与协作者共享的文档中。卡片的价值不在于创建一次,而在于下次你需要解释网站结构、撰写文档或排查一个行为异常的地址时,有一份可靠的带注释参考可用。
你可能发现为每个计划发布的页面或地址各做一张卡片很有帮助。对于一个小型个人项目,两到三张卡片通常就够了。对于较大的网站,你可以维护一张表格,每行是一个地址及其标注好的各片段。格式不重要,重要的是在需要之前就养成写下来的习惯。
随着时间推移,这些卡片会成为你的个人术语表。当有人问某个字符串到底是域名还是URL时,你可以指向卡片,展示哪个片段承担哪个角色。这种具体的参考在对话中远比抽象定义有用,也能随着项目增长保持你自己理解的清晰。
常见问题
example.org是一个可以访问的真实网站吗?
不是。在本文中,example.org纯粹作为假设的主机名来演示如何将URL字符串拆分为各个命名部分。你不应期待该地址能加载任何已发布的页面。
查询和片段有什么区别?
查询以问号开始,向服务器传递可选的键值指令。片段以井号开始,充当页面内的书签;它不会随请求发送给服务器,只影响浏览器在已返回资源中的定位位置。2
地址说明卡中需要包含https吗?
包含方案是一个好习惯,因为它提醒你协议是完整地址的一部分。省略方案可能在你或协作者后续需要区分单独的域名与完整URL时造成混淆。
What is a Domain Name? - Learn web development | MDN. 采集日期:2026-11-01. ↩︎ ↩︎
What is a URL? - Learn web development | MDN. 采集日期:2026-11-01. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
How does the Internet work? - Learn web development | MDN. 采集日期:2026-11-01. ↩︎