当你第一次准备一个小型网站时,逐一记住每个页面的名称和完整地址容易让人感到混乱。本文用一个明确标注为假设的地址,演示一种简单的记录习惯如何帮助你从一开始就保持条理。

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

假设你正在规划一个小型个人项目,并且草拟了一个你想称为「首页」的页面。要在浏览器中访问这个页面,你需要的不仅仅是页面名称,而是一个完整的地址来告诉浏览器去哪里查找。域名标识你正在请求哪台网络服务器,而完整地址则进一步指向该服务器上的某个具体资源。MDN将URL描述为互联网上唯一资源的地址,也是浏览器用来获取已发布资源(如HTML页面、CSS文档和图片等)的关键机制之一。1

可以把域名想象成一栋建筑,把完整地址想象成包含建筑、楼层甚至房间号的完整邮寄地址。网页上的链接就是一段与URL绑定的文本,读者通过激活链接就可以从一个文档跳转到另一个文档。因此,当你为项目记录一个页面时,实际上是在记录链接将要指向的目标地址。12

本文通篇使用的假设地址是 https://example.org/notes/first-page?view=compact#intro。这个页面并不存在,也从未在任何地方发布过。它是一个为了练习阅读和标注URL各部分而构造的字符串。1

在本例中逐一标出地址的各个部分

逐段观察这个假设地址。第一部分是协议方案,即https,它告诉浏览器请求资源时应使用哪种协议。MDN指出,对于网站来说协议通常是HTTPS或其未加密版本HTTP,协议方案始终是URL的第一个部分。1

协议方案之后是权限部分,由冒号加两个斜杠分隔。在本例中,域名部分是example.org,它指明正在请求哪台网络服务器。这里没有显示端口号,因为当服务器使用HTTPS的默认端口时,端口通常会被省略。1

本例中的路径是/notes/first-page。MDN解释说,路径代表网络服务器上的资源位置,在现代实践中它主要是由服务器处理的抽象概念,而非物理文件位置。路径之后是一个问号,引导查询字符串。本例中的查询是view=compact,这是一个键值对,用于向服务器提供额外参数。最后,井号引导片段标识符,本例中是intro。MDN指出,片段相当于资源内部的一个书签,并且它不会随请求发送到服务器。1

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

现在保持协议方案和域名不变,想象两个变体。第一个只把路径改为/notes/second-page,第二个只把查询改为view=full。在两种情况下,浏览器仍然联系由example.org标识的同一台服务器,但域名之后的字符串不同。这一观察来自对地址结构的直接阅读,并不能告诉我们服务器实际会返回什么内容。

路径部分区分的是同一主机上的不同页面。如果你的项目有五个页面,它们共享同一个域名,但各自携带不同的路径。查询字符串则可以在不改变所请求页面的前提下,修改单个页面的显示或处理方式。片段标识符位于地址的最末端,指向页面内部的一个位置,因此两个仅片段不同的链接仍然指向同一份文档。

在清单中记录这些区别有助于日后避免混淆。当协作者问你指的是哪个页面时,你可以指向路径;当他们问某种特定的显示模式时,你可以指向查询;当他们问页面内的某个部分时,你可以指向片段。每个部分回答的是不同的问题。

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

记录以下字段到一张卡片或一个简单的文本文件中,为项目中的每个页面分别填写。第一个字段是页面名称,即你自己选定的简短可读标签,例如「首页」。第二个字段是完整地址,包括协议方案、域名、路径、查询和片段(如果有的话)全部写出。第三个字段是简短的用途备注,说明这个页面的目的,例如「笔记区域的简介部分」。

对于我们的假设示例,这张卡片的内容如下。页面名称:首页。完整地址:https://example.org/notes/first-page?view=compact#intro。用途备注:笔记区域简介部分的紧凑视图。你还可以添加第四个字段来记录条目的日期,以便追踪信息最后一次被核对的时间。

这张卡片的价值不在于任何单个字段,而在于将它们放在一起。当你把项目交给协作者,或者在中断一段时间后重新回到项目时,卡片可以提供一个快速参考,而不需要你凭记忆重新推导地址。把卡片保存在你最方便维护的格式中,无论是纯文本文件、电子表格中的一行,还是笔记应用里的一条记录。

通过手工复制与逐项标注来核对说明卡

检查说明卡上的完整地址,方法是从浏览器地址栏或规划文档中逐字符复制该地址,粘贴到文本文件的一行空白处,然后与卡片上的条目逐字对比。如果有任何字符不同,先修正卡片再继续。这个手工复制的步骤能捕捉到仅凭记忆容易忽略的错误。

标注粘贴后地址的每个片段。依次标出协议方案、域名、路径、查询字符串(如果有)和片段标识符(如果有)。使用简单的标签,如「协议」「域名」「路径」「查询」「片段」。这个练习可以确认你理解每个部分代表什么,并且你的卡片确实反映了地址的实际结构。

为项目中的每个页面重复这个过程。如果你的项目只有两三个页面,整个任务只需要几分钟。如果页面更多,前期逐一标注地址的投入会在你日后需要向他人解释站点结构或排查链接问题时节省时间。

步骤 1

从你的来源处复制完整地址,粘贴到文本文件中的一行空白处。

步骤 2

将粘贴的字符串与卡片条目逐字对比,修正任何不一致之处。

步骤 3

在地址的每个片段下方写出标签,分别标明协议方案、域名、路径、查询或片段。

保留这份记录供日后写作和沟通使用

把完成的卡片存放在你确实会再次查看的位置。项目目录中的一个文件夹、一条专用笔记或一份共享文档都可以,只要你能快速找到它们。目标不是完美,而是可用。一张十秒内就能找到的卡片,远比一份格式精美却从不打开的电子表格更有用。

在你撰写需要链接到项目其他页面的内容时,把卡片当作参考。当你起草导航菜单或内部链接时,打开目标页面的卡片,从那里复制完整地址,而不是凭记忆输入。这个习惯可以降低在路径或查询字符串中引入拼写错误的概率。

随着时间推移,你对记录内容的选择可能会演变。你可能会决定增加一个字段来标注页面的目标读者,也可能会在发现项目从未使用页面内锚点时去掉片段字段。这种灵活性本身就是清单价值的一部分。清单服务于你的项目,而不是反过来。从简单开始,保留被证明有用的部分,随着需求变得更加清晰再调整格式。

常见问题

地址说明卡里需要填写片段标识符吗?

只有当你的页面使用了页面内锚点时才需要。如果页面没有基于片段的导航,你可以留空或直接省略这个字段。片段指向文档内部的一个位置,并且不会随请求发送到服务器,所以只有当你需要链接到某个特定部分时它才有意义。1

URL中路径和查询字符串有什么区别?

路径标识你正在请求服务器上的哪个资源,而查询字符串提供额外的键值对参数,可以修改该资源的返回或显示方式。它们承担不同的角色:路径选择页面,查询调整页面的行为或呈现。1

说明卡上应该记录相对地址还是完整地址?

对于交接清单来说,完整地址更清晰,因为它是自包含的,不依赖读者已经知道域名。相对地址在HTML文档内部很有用,因为浏览器可以自动补全缺失的部分,但在人与人之间的沟通中,完整URL能避免歧义。1