在发布网站之前,你会遇到两个相关但不同的概念:域名和完整URL。混淆它们可能导致与协作者沟通出错或文档记录失误。本文通过一个假设地址逐段拆解,帮你建立一份可复用的个人参考卡。

域名与完整URL分别回答什么问题

假设你正在规划一个小型个人项目,并为其中一个页面草拟了地址:https://example.org/notes/first-page?view=compact#intro。这是一条仅用于练习的假设字符串,并不指向真实存在的页面。从整体来看,它包含的信息远不止一个名称。域名(如 example.org)为互联网上的某台服务器提供了一个人类可读的地址。域名之所以存在,是因为计算机通过IP地址通信,而IP地址是数字标识符,人们很难记住或将其与某项具体服务联系起来。12

完整URL则是互联网上某个唯一资源的地址。它不仅告诉浏览器该联系哪台服务器,还指明要从该服务器获取哪个具体资源,有时还包括显示或过滤方式。在我们的假设字符串中,example.org 是域名部分,但字符串的其余部分将请求缩小到一个特定页面、一种特定显示模式以及该页面中的一个特定位置。理解这一区别有助于你在撰写文档、分享链接或排查失效引用时准确描述自己的站点。3

可以把域名想象成一栋建筑的街道地址,而完整URL则是包含楼层、房间号甚至具体工位的完整邮寄说明。两者都不可或缺,但回答的问题不同。域名回答的是「哪台服务器」,完整URL回答的是「该服务器上的哪个具体资源,以及在什么条件下」。保持这个心智模型,下一节的标注练习就会很顺畅。

在本例中标出各组成部分

现在把字符串 https://example.org/notes/first-page?view=compact#intro 拆解为各个组成部分。第一部分 https 是协议(scheme),它指示浏览器必须使用哪种协议来请求资源。对于网站而言,协议通常是 HTTPS 或其未加密版本 HTTP。字符 :// 将协议与后面的部分分隔开,后面的内容属于权限(authority)段。3

本例中的权限部分是 example.org,即域名,它标识被请求的是哪台服务器。域名之后是路径 /notes/first-page,表示资源在该服务器上的位置。在早期网页中,路径对应服务器上的物理文件位置,但如今它主要是由服务器处理的抽象概念,不一定对应真实文件。路径之后是查询字符串,由问号引出。本例中查询为 view=compact,查询参数是键值对,在服务器返回资源之前提供额外信息。最后,井号引出片段标识符,本例中为 intro。片段相当于资源内部的书签,指示浏览器滚动到特定位置。3

有两条标点规则值得明确记住。问号始终标志查询部分的开始,问号之前的内容属于路径。井号始终标志片段的开始,井号之后的内容不会随请求发送给服务器。记住这两个分隔符,你就能将任何URL拆分为有意义的各部分,无需猜测。3

保持主机不变,对比不同路径和查询

现在保持主机部分 example.org 不变,观察修改其他部分后字符串如何变化。将 https://example.org/notes/first-page?view=compact#intro 与 https://example.org/notes/second-page 对比,后者路径不同,没有查询也没有片段,指向同一台服务器上的另一个资源。域名未变,浏览器在两种情况下联系的是同一台服务器,只是请求的资源不同。

再将原字符串与 https://example.org/notes/first-page?view=full 对比。此时路径完全相同,但查询值从 compact 变为 full。两个字符串共享相同的协议、主机和路径,却携带了关于资源呈现方式的不同指令。我们并不声称任何特定服务器会实际响应这些参数,只是观察字符串在特定、可识别的方式上存在差异。

最后,考虑去掉片段后的情况。字符串 https://example.org/notes/first-page?view=compact 就服务器端而言是相同的请求,因为片段不会随请求传输。唯一的区别在客户端:有片段时,浏览器知道加载后应滚动到书签位置。这一观察印证了片段是本地导航辅助工具,不属于服务器请求的一部分。

为假设项目制作地址说明卡

记录一张简短的参考卡,对应你计划使用的每个地址。以上述假设项目为例,卡片可包含四个字段:用途、完整地址、主机和路径。用途字段写一句通俗说明,例如「第一个笔记页面,紧凑显示,滚动到引言部分」。完整地址字段写你打算分享的完整字符串。主机字段写 example.org。路径字段写 /notes/first-page。如果查询和片段对你的工作流有意义,也可以加上对应字段。

用途一栏用自己的话写,不要照搬技术术语。目标是创建一个快速提醒,让你或协作者在几个月后无需重新分析字符串就能明白。如果项目有多个页面,每页做一张卡,统一存放在一个文档或笔记文件中。

选择你实际会维护的格式。纯文本文件便于搜索和编辑,电子表格的列式结构也适合喜欢表格的人。具体工具不如养成更新习惯重要——每次修改地址时同步更新卡片。过时的卡片比没有卡片更糟,因为它可能误导别人使用已失效的链接。

手工核对说明卡

在依赖参考卡之前,先对照原始字符串进行验证。这是一个简单的手工流程,能发现拼写错误和边界误判。

完成上述所有步骤后,再将每个标注部分与原始字符串逐一对照。如果任何部分不匹配,修正卡片后从出错位置重新开始检查。

记录本次核对的日期。这个小习惯能帮你日后判断卡片是否仍反映项目当前状态,还是需要再做一轮检查。

步骤 1

手工将完整地址逐字符抄写到空白行,不使用粘贴功能,迫使自己注意每一个符号。

步骤 2

标注协议:在 :// 之前的所有内容下方画线,确认与卡片上的协议字段一致。

步骤 3

标注主机:在 :// 之后到下一个斜杠之间的文本下方画线,确认与卡片上的主机字段一致。

步骤 4

标注路径:从该斜杠开始,到问号或井号(以先出现者为准)之前的所有内容下方画线,确认与卡片上的路径字段一致。

保留说明供以后使用

将完成的卡片存放在你写内容、配置链接或回答协作者关于页面位置问题时自然会查看的地方。项目笔记中的专用文件夹、置顶文档或收藏的维基页面都可以。关键标准是六个月后你仍能找到它。

随着项目增长,不要让卡片变成所有曾经输入过的URL的堆积场。只保留当前有效或预期会重新启用的地址。已退役的地址可移至存档区并附注移除原因,这样活跃部分足够短,能快速浏览。

如果之后决定重命名路径或更改查询参数,在做出修改的同时更新卡片。把更新卡片视为编辑的一部分,而不是稍后再做的独立任务。这一个习惯能防止小项目中最常见的困惑来源:分享出去的链接与实际地址不再匹配。

常见问题

片段标识符会发送给服务器吗?

不会。片段标识符位于井号之后,不会随请求发送给服务器。它仅由浏览器使用,用于在已加载的资源中导航到书签位置。3

两个不同的URL可以共享同一个域名吗?

可以。域名标识一台服务器,而该服务器可以承载多个资源。每个资源有自己的路径,还可以有各自的查询和片段,因此多个不同的URL可以共享同一个域名,同时指向不同页面或同一页面的不同视图。3

分享URL时需要包含协议部分吗?

在浏览器地址栏中通常可以省略协议,因为浏览器会默认使用 HTTP 或 HTTPS。但在文档或参考卡中记录地址时,写完整协议能消除歧义,使字符串自包含。3