第一次准备建站时,理解网站地址的构成是最早需要掌握的基础之一。本文用一个假设地址演示各部分的含义,并介绍如何保留一份清晰的记录供后续使用。

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

假设你正在规划一个小型个人项目,写下地址 https://example.org/notes/first-page?view=compact#intro 作为讨论用的占位符。这个地址纯粹是假设的,仅用于练习阅读网站地址的结构,它不指向任何真实页面,也没有服务器会响应它。目标只是观察这个字符串,理解每一段传达的信息。

域名提供的是互联网上某台网络服务器的人类可读地址。计算机之间通过数字形式的IP地址互相访问,但人们很难记住这些数字,而且它们可能随时间变化。域名正是为了解决这个问题,给每台服务器赋予一个更容易辨认和输入的名称。1

完整URL在域名的基础上更进一步。URL是互联网上某个唯一资源的地址,也是浏览器用来获取已发布资源(如HTML页面、图片或样式表)的关键机制之一。域名告诉你该联系哪台服务器,而URL的其余部分则告诉那台服务器你具体想要哪个资源。2

逐段阅读示例地址

观察示例地址的开头部分。https 是方案(scheme),它指示浏览器必须使用哪种协议来请求资源。分隔符 :// 紧跟在方案之后,表示接下来的部分是授权信息(authority)。example.org 是该授权中的域名,标识被请求的网络服务器。对于标准HTTPS连接,端口通常省略,因为浏览器会使用默认值。2

域名之后是路径。在本例中路径是 /notes/first-page。路径代表资源在网络服务器上的位置。在早期互联网中,这样的路径对应服务器上的物理文件位置,但现在它主要是由网络服务器处理的抽象概念,不再对应真实的物理文件。你仍然可以把它理解为一条缩小资源范围的路线。2

问号引导地址的查询部分。在本例中,view=compact 是一个键值对,为网络服务器提供额外参数。井号引导片段(fragment),在本例中是 intro。片段相当于资源内部的书签,给浏览器指示应显示内容中的哪个位置。值得注意的是,片段不会随请求发送到服务器。2

相同主机,不同路径与查询

现在保持主机部分 example.org 不变,只修改路径。如果把 /notes/first-page 替换为 /notes/second-page,域名和方案完全相同,但授权部分之后的字符串指向了同一台服务器上的另一个位置。在字符串层面,这是两个不同的地址,尽管它们共享同一个域名。这一观察只关注文本本身的差异,不推断任何特定服务器会如何处理每个请求。

接下来保持其他部分不变,只修改查询。把 view=compact 替换为 view=full,就产生了附加在同一路径上的不同查询字符串。这两个地址共享相同的方案、域名和路径,但问号之后携带了不同的参数。同样,这是对文本结构的观察。每台网络服务器对参数有自己的处理规则,要确认某台服务器是否处理特定参数,唯一可靠的方式是询问该服务器的拥有者。

也可以完全移除片段。去掉井号和 intro 之后,地址仍然指向服务器上的同一个资源,因为片段不会随请求发送。片段只影响浏览器在资源加载后显示的内容。将这些变体并排比较,有助于你分辨字符串中哪些部分影响服务器,哪些部分只影响浏览器的显示行为。

制作地址说明卡

记录一张简短的说明卡来描述你的假设项目地址。说明卡不需要特殊格式,纯文本文件或笔记本中的几行就足够了。先用一句话记录这个地址的用途,例如:用于理解URL结构的阅读练习。然后逐字写下完整地址,确保每个字符都准确无误。

列出地址各部分,每部分占一行并附上标签。对于本例地址,你可以写:方案为 https,域名为 example.org,路径为 /notes/first-page,查询为 view=compact,片段为 intro。将各部分分别标注,方便日后发现错误,也便于分享给协作者或写入项目文档。

标注你在制作说明卡时做出的选择。例如,你可以注明选择 compact 视图参数是因为它代表一个假设的显示偏好,或者注明片段 intro 是随意的、仅用于演示。这些备注提醒你日后哪些部分对项目有实际意义,哪些只是练习中的占位内容。

手工核对说明卡

快速的手工核对能在造成混乱之前发现拼写错误和标签错位。因为示例地址很短,你不需要任何特殊工具就能验证每个字符。以下步骤是作者建议,用于培养可靠的核对习惯,并非来自任何外部标准的要求。

完成核对后,将你标注的各部分与原始字符串从左到右再比较一次。如果每个片段都匹配、每个标签都在正确的位置,你的说明卡就是一致的。如果发现不匹配,修正说明卡并从地址开头重新检查。

检查标点符号同样重要。确认冒号和两个斜杠出现在方案与域名之间,问号出现在查询之前,井号出现在片段之前。这些分隔符容易被忽略,但它们定义了各部分之间的边界。

步骤 1

将完整地址 https://example.org/notes/first-page?view=compact#intro 复制到纯文本编辑器或笔记的空白行中。不要凭记忆操作,粘贴或重新输入,确保你比对的是精确的字符串。

步骤 2

在复制的字符串下方逐行标注各部分。分别写出方案、域名、路径、查询和片段,在每个标签下写出属于该部分的确切字符。例如,在路径下写 /notes/first-page,包含开头的斜杠。

步骤 3

将你的标注与原始字符串从左到右逐字符比较。验证方案在冒号加双斜杠序列之前结束,域名在路径第一个斜杠之前结束,查询从问号之后开始,片段从井号之后开始。

保留地址记录供日后使用

将说明卡保存在你日后撰写内容、分享链接或与他人讨论项目时会翻阅的位置。项目文件夹中的一个简单文本文件就很合适,因为它能随其他资料一起保存。说明卡给你一个集中的地方,在将地址粘贴到文档或消息之前确认各部分的准确拼写。

决定说明卡上值得保留哪些细节、哪些可以省略。对于第一个项目,记录完整地址、用途和各部分标签通常就足够了。除非那些变体代表你计划创建的真实页面,否则不需要记录路径或查询的所有可能变化。让说明卡聚焦于你实际使用的内容,可以避免它变得杂乱难以快速浏览。

当项目增长、你添加了真实页面时,可以用同样的说明卡格式扩展到每个新地址。写下用途、完整字符串和各部分标签的习惯,能自然地从单个练习地址扩展到一份生产URL列表。关键在于一致性:每次使用相同的结构,这样你打开任何一张说明卡都能一眼看到相同类型的信息。

常见问题

域名和完整URL有什么区别?

域名标识该联系哪台网络服务器,为数字形式的IP地址提供人类可读的替代。完整URL包含域名以及方案、路径、查询和片段等额外部分,指向该服务器上的某个具体资源。12

URL中的问号起什么作用?

问号将路径与URL的查询部分分隔开。问号之后的内容由键值对组成,为网络服务器提供额外参数。每台服务器对这些参数有自己的处理规则。2

URL中的片段会发送到服务器吗?

不会。片段出现在井号之后,不会随请求发送到服务器。它相当于资源内部的书签,只影响浏览器在资源加载后显示的内容。2