如果你正在第一次准备个人网站或小型项目网站,浏览器地址栏里那串字符可能看起来像一堆符号的混合。本文用一个明确标注为假设的地址,展示每个部分的含义,并教你怎样把它记录下来供自己参考。

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

假设你正在为一个小型笔记项目构思地址。你在便签上写下了 https://example.org/notes/first-page?view=compact#intro 。这是一个纯粹用于练习阅读网站地址结构的假设地址,并不声称这个页面真实存在或已经上线。第一次看到它时,你可能会疑惑哪一部分标识了网站本身,哪一部分指向了该网站上的某个具体资源。

域名和完整URL回答的是两个不同的问题。域名回答的是「我在和哪台服务器通信」这个问题。域名为网络服务器提供了人类可读的地址,因为计算机使用的数字IP地址对人来说难以记忆,而且可能会随时间变化。在我们的例子中,example.org就是域名:它告诉浏览器应该联系哪台服务器。1

URL回答的是一个更广泛的问题:「我想要那台服务器上的哪个具体资源,浏览器应该怎样获取它?」URL是互联网上唯一资源的地址,是浏览器用来获取已发布资源(如HTML页面、图片或样式表)的关键机制之一。完整的字符串 https://example.org/notes/first-page?view=compact#intro 就是一个URL;域名只是其中的一个组成部分。2

在本例中标出每个组成部分

现在拿同一个假设字符串来标记每个部分。方案是https,它指示浏览器必须使用哪种协议来请求资源。授权部分跟在 :// 这个字符模式之后,包含域名example.org。这两部分合在一起告诉浏览器应该连接哪里以及怎样与那台服务器通信。2

授权部分之后是路径,在本例中是 /notes/first-page 。路径表示资源在网络服务器上的位置。问号引导查询字符串;在这里是 view=compact ,一个键值对,向服务器提供额外参数。最后,井号引导片段,在这里是 intro 。片段充当资源内部的书签,并且永远不会随请求发送到服务器。2

记住分隔符的一个实用方法是:问号总是开启查询部分,井号总是开启片段部分。如果你在地址中看到这两个字符中的任何一个,它后面的所有内容都属于对应的部分,直到出现另一个分隔符或字符串结束。无论页面实际内容是什么,这条规则都成立。2

同一主机下的不同路径与查询

保持主机部分固定为example.org,只替换路径。比较 https://example.org/notes/first-page 与 https://example.org/archive/old-draft 。两个地址指向同一台服务器,但路径部分将浏览器引导到该服务器上的不同资源。域名没有改变;变化的只是内部位置。

保持路径不变,改变查询。比较 https://example.org/notes/first-page?view=compact 与 https://example.org/notes/first-page?view=full 。主机和路径完全相同,因此浏览器仍然向同一台服务器请求同一个资源。查询字符串只是随该请求传递了不同的参数。我们在这里观察的是字符串的结构,而不是对任何特定服务器实际如何处理这些参数做出推断。

最后,只改变片段。比较 https://example.org/notes/first-page?view=compact#intro 与 https://example.org/notes/first-page?view=compact#summary 。因为片段是资源内部的书签且不会传输到服务器,所以替换片段不会改变服务器接收到的内容。它只改变页面加载后浏览器滚动到的位置。认识到这一区别有助于理解为什么两个仅在井号之后不同的URL仍然请求的是同一份文档。

为你的假设项目做一张地址说明卡

记录一张简短的说明卡,写下三样东西:地址的用途、完整的URL字符串、以及每个部分的标注拆解。对于我们的例子,用途可以写成「紧凑阅读模式下的第一篇笔记,锚定到引言部分」。完整字符串是 https://example.org/notes/first-page?view=compact#intro 。拆解部分分别列出方案、域名、路径、查询和片段。

这张说明卡是个人参考工具,不是正式规范。你可以选择对自己有帮助的详细程度。如果你的项目最终会有多个页面,可以为每个地址创建一张卡,把它们放在一个简单的文本文件或笔记本里。目标是让你以后回顾时能轻松理解每个地址原本打算做什么,而不必从头重新推导含义。

记录你创建说明卡的日期,以及一行关于你为什么选择那个特定路径或查询的备注。这些小注释在你或协作者以后需要回忆命名选择背后的理由时能节省时间。这是普通的组织建议;没有外部标准要求这样做,但许多人发现当项目超出单个页面时它能减少混乱。

手工核对你的说明卡

在把地址分享给任何人或嵌入文档之前,值得检查你的说明卡是否与实际字符串逐字匹配。以下步骤是简单的作者建议,用于手动完成这项检查。

如果说明卡上的任何部分与复制的字符串不匹配,立即更正说明卡并记录哪里出了错。常见的疏漏包括路径中遗漏了开头的斜杠、把问号和与号混淆、或者不小心带入了末尾空格。更正后再重复检查一遍,能增强你对说明卡可靠性的信心。

检查片段时要把它与地址的其余部分分开对待。因为片段不会发送到服务器,那里的拼写错误不会产生服务器报错;浏览器只会无法滚动到预期位置。在说明卡上验证片段有助于你在发布之前发现这类静默错误。

步骤 1

将完整URL从说明卡复制到一个纯文本编辑器中,以免隐藏格式掩盖字符。

步骤 2

从左边开始标注每个部分:在https下面写「方案」,在example.org下面写「域名」,在 /notes/first-page 下面写「路径」,在view=compact下面写「查询」,在intro下面写「片段」。

步骤 3

将每个标注部分与说明卡上的原始条目逐一对照。确认分隔符(冒号加双斜杠、问号、井号)恰好位于你预期的位置。

保留这份记录供以后使用

说明卡核对完成后,把它存放在你以后确实会查看的地方。项目文件夹里的一个纯文本文件就很合适,因为它会随其余站点文件一起保存。如果你更喜欢笔记应用,把说明卡粘贴到那里并加上一个类似「地址参考」的标签,方便日后搜索。格式不如保持记录可访问的习惯重要。

在你撰写文档、与协作者分享链接或排查页面为何未按预期加载时,使用这张说明卡。已经写好的拆解意味着你可以快速判断问题出在路径、查询参数还是片段上,而不必凭记忆重新分析字符串。如果初始设置和下一次需要用到地址之间隔了几个月,这一点尤其有帮助。

你可能会发现,随着项目增长,你的记录偏好会演变。也许你开始为每个地址添加一列记录上次验证的日期,或者按站点板块对说明卡分组。这完全没问题。说明卡是你的个人工具,调整它的格式以匹配你的工作流程,是让它真正有用而非一次性练习的一部分。

常见问题

域名和URL是同一个东西吗?

不是。域名标识要联系哪台服务器,而URL是完整地址,还包含方案、路径、可选的查询和可选的片段。域名是URL内部的一个组成部分。12

井号后面的片段部分会发送到服务器吗?

不会。片段标识符用于让浏览器滚动到资源内部的书签位置,它永远不会包含在发送给服务器的请求中。2

为什么要在上线前把地址的每个部分写下来?

保留一份带标注的拆解能帮助你发现拼写错误、向协作者清楚地传达地址含义,并在以后排查特定部分时不必凭猜测。这是一个简单的组织习惯,能在项目增长时减少混乱。