在发布个人网站或小型项目之前,你需要把网站地址分享给别人或记录下来供自己参考。理解地址中每个部分的含义,能帮助你清楚地描述它并尽早发现错误。本文用一个假设地址来演示域名与完整URL的区别,然后展示如何记录和核对各个部分。

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

假设你正在准备一个小型读书笔记项目,想给朋友一个能找到你第一个页面的地址。你可能会说项目放在 example.org 上,但这只标识了服务器。域名为互联网上可用的网络服务器提供了人类可读的地址,因为计算机通过数字形式的IP地址访问服务器,而人们很难记住这些数字。域名通过给服务器一个可读的标签来解决这个记忆难题。1

完整URL则更进一步。它是互联网上某个唯一资源的地址,而不仅仅是承载它的服务器。当你把完整地址交给朋友时,你指定了协议方案、服务器、到达页面的确切路径以及浏览器应遵循的任何附加指令。换句话说,域名回答的是“哪台服务器”这个问题,而完整URL回答的是“那台服务器上的哪个具体资源,以及浏览器应如何请求它”。2

这个区别在上线之前很重要,因为你在不同场景下往往需要这两类信息。当有人问你的网站托管在哪里时,你给出域名。当你在文章中写链接或分享某个特定页面的直接路径时,你需要完整URL。在头脑中把这两个概念分开,能防止你在记录项目信息或排查失效链接时产生混淆。

在本例中逐段读出各部分

为了让各部分变得具体,请看这个纯粹用于字符串阅读练习的假设地址:https://example.org/notes/first-page?view=compact#intro 。这个页面不需要真实存在,练习的目标是根据URL结构识别字符串中每个片段代表什么。

第一个片段 https 是协议方案,它指示浏览器必须使用哪种协议来请求资源。对于网站来说,协议通常是HTTPS或其未加密版本HTTP。下一个片段 example.org 是主机,它标识被请求的是哪台网络服务器,充当地址中的域名部分。斜杠分隔的片段 /notes/first-page 是该服务器上资源的路径。在早期网络中,路径代表服务器上的物理文件位置,但如今它主要是由网络服务器处理的抽象概念,没有对应的物理实体。2

路径之后是查询字符串,由问号引导。在本例中,?view=compact 是提供给网络服务器的额外参数,以键值对的形式呈现。井号引导片段标识符,因此 #intro 指向资源本身内部的特定位置,相当于文档中的一个书签。片段标识符不会随请求发送给服务器,它只告诉浏览器在资源加载后将视图滚动或定位到哪里。2

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

现在保持主机部分固定为 example.org,只改变路径。如果地址变成 https://example.org/about 而不是 https://example.org/notes/first-page,域名完全没有变化。被联系的服务器是同一台。不同的是路径,它请求的是该服务器上另一个资源。从字符串角度看,主机后面第一个斜杠之前的所有内容保持不变,之后的内容标识了不同的位置。2

同样,你可以在不改动主机和路径的情况下只改变查询字符串。比较 https://example.org/notes/first-page?view=compact 和 https://example.org/notes/first-page?view=full 。主机和路径是相同的字符串,但等号后面的参数值不同。这两个地址是不同的URL,因为完整字符串不同,尽管它们共享相同的域名和路径。你并没有对服务器实际返回什么做出任何断言,只是在观察字符串不同,因此按URL标准它们指向的可能是不同的资源。2

这个练习帮助你理解为什么路径或查询中的一个小笔误就能导致完全不同的地址。缺少一个斜杠、拼错一个片段、或在查询中多出一个字符,都会产生不同的字符串。当你之后记录自己项目的地址时,逐个关注这些片段能帮助你更容易地在公开分享链接之前发现此类错误。

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

记录一张简短的说明卡,在你把地址分享到任何地方之前完成。一张简单的卡片可以包含三个字段:用一句话说明页面用途、完整写出地址全文、以及逐段标注各部分名称。对于本例,用途可以写成“紧凑视图下的第一个读书笔记页面,锚定到引言部分”。完整地址就是整个字符串。逐段拆解则分别列出协议方案、主机、路径、查询和片段。

写出逐段拆解能迫使你按名称识别每个片段,而不是把地址当作一整块无差别的文字。如果你之后添加第二个页面,可以复制卡片格式,只修改路径或查询字段。这使你的文档在各页面之间保持一致,也便于向合作者解释地址的哪一部分发生了变化。

说明卡在你写文章、发邮件或发社交帖子需要贴链接时也能充当参考。你不必每次凭记忆重新输入地址,而是直接从卡片上复制。这减少了在路径中引入笔误或不小心丢掉查询字符串的可能性。

用手工复制与逐项标记核对说明卡

即使是一份仔细写好的说明卡也可能包含转录错误,因此在把卡片当作正式参考之前做一次快速手工核对是值得的。

整个过程很简单,一旦你熟悉了要找的片段,一分钟之内就能完成。

如果卡片上的每个片段都与原始字符串逐字符一致,说明卡片是可靠的。如果任何片段有出入,在公开使用之前先修正卡片。这种核对纯粹是细心记录的习惯,不需要任何特殊工具。

步骤 1

检查说明卡上的完整地址,把它复制到纯文本编辑器或空白笔记中。不要依赖渲染后的超链接,因为有些应用会把URL的部分内容隐藏在显示文字后面。

步骤 2

标注文本中的每个片段:先标出协议方案,再标出主机,然后在路径开始处画一条分隔线,圈出引导查询的问号,标出引导片段的井号。将每个标注好的片段与你在卡片上写的逐段拆解逐一对照。

保留说明供以后写作或沟通使用

说明卡通过手工核对之后,把它存放在你真正会回访的地方。项目文件夹里的纯文本文件、你常用写作工具中的笔记、或站点规划文档中的专门章节都可以。格式不如习惯重要——把卡片和它所描述的内容放在一起,这样当你写新文章或更新页面时,可以直接调出确切地址,而不必凭记忆重新拼写。

如果项目扩展到多个页面,在原有卡片基础上逐条补充,而不是替换最初的条目。每个页面获得自己的行或区块,使用相同的三个字段。随着时间推移,这组卡片就成了一份简单的地址清单,你可以扫描它来检查一致性、重复路径或遗漏的查询参数。

你可能还会发现说明卡在与合作者沟通或撰写文档时很有用。与其把一段原始URL贴进消息里、指望对方自己解读,不如把标注好的逐段拆解和地址一起分享。当查询字符串或片段携带了从快速一瞥中不容易看出的含义时,这种做法尤其有帮助。说明卡把一串字符变成了简短可读的解释,团队中的任何人都可以据此核实。

常见问题

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

不是。域名标识的是服务器,而完整URL标识的是该服务器上的某个具体资源,并包含协议方案、路径、查询和片段等额外部分。12

URL中的片段部分会发送给服务器吗?

不会。井号后面的片段标识符不会随请求发送给服务器。它只指示浏览器在已加载的资源中将视图定位到哪里。2

核对说明卡需要特殊工具吗?

不需要。你可以把完整地址复制到任何纯文本编辑器中,手工标注每个片段,然后与卡片上的拆解逐一对照。这个基础核对不需要浏览器扩展或在线验证器。