在网站上线之前,地址需要让建站者自己和任何可能在浏览器中输入它的人都能理解。本文通过一个假设地址逐段标注各部分含义,并提供一种简单的记录方法,供你在自己的项目中复用。
域名与完整URL分别回答什么问题
假设你正在规划一个小型个人项目,在便签上写下了 https://example.org/notes/first-page?view=compact#intro 这样的地址。这个地址纯粹是假设的,仅用于练习阅读网站地址的结构,不假设该页面真实存在或已上线。即便如此,观察它时会引出两个人们经常混淆的不同问题。第一个问题是:我想访问互联网上的哪台服务器?第二个问题是:到达那台服务器后,我想要哪个具体资源?
域名回答第一个问题。域名为互联网上任何可用的网络服务器提供了人类可读的地址,因为计算机实际使用的数字IP地址既难以记忆,也可能随时间变化。在我们的例子中,example.org就是域名。它告诉浏览器该联系哪台机器,但不说明你对那台机器上的哪个页面、文件或片段感兴趣。1
完整URL回答第二个问题。URL是互联网上唯一资源的地址,也是浏览器用来获取已发布资源(如HTML页面、图片或样式表)的关键机制之一。在我们的例子中,从https到#intro的整个字符串就是URL。它将请求从整台服务器缩小到一个特定资源,甚至到该资源中的一个具体位置。理解这个区别是后续所有内容的基础。2
在本例中逐段标出各部分
让我们按顺序标注假设地址的每个部分。字符串以https开头,这是方案。方案指示浏览器必须使用哪种协议来请求资源;对于网站来说通常是HTTPS或其未加密版本HTTP。方案之后是权限部分,由字符组合://分隔。在我们的例子中,权限部分就是example.org,即标识目标服务器的域名。没有出现端口号,这意味着浏览器将使用HTTPS的标准端口。2
权限部分之后是路径:/notes/first-page。路径告诉服务器你正在请求哪个资源。在早期网络中,路径通常对应服务器上的物理文件位置,但如今它主要是由网络服务器处理的抽象概念,没有实际的物理对应。你可以把它理解为指定站点内的一个位置,就像街道地址在城市中缩小到某栋建筑。问号之后的内容引入查询字符串。在我们的例子中,?view=compact是查询。查询参数是提供给网络服务器的额外键值对,服务器可以在返回资源之前用它们做额外处理。问号是一个信号,表明其后的所有内容属于查询而非路径。2
最后,井号字符引入片段。在我们的例子中,#intro是片段标识符。锚点代表资源内部的一种书签,为浏览器提供方向,使其显示该书签位置的内容。一个重要细节:井号之后的部分永远不会随请求发送到服务器。它完全由浏览器在资源加载后处理。所以在我们的假设地址中,服务器会收到对路径/notes/first-page和查询view=compact的请求,但永远不会看到片段intro。2
保持主机不变,对比不同路径和查询
现在保持示例中的主机部分不变,只改变其余部分。如果你把路径改为/notes/second-page,就是在向同一台服务器请求不同的资源。如果你把查询从?view=compact改为?view=full,你仍然在请求相同的路径,但要求服务器以不同方式处理请求。这些是对字符串本身的观察;服务器是否实际返回不同内容取决于该服务器的配置方式,仅通过阅读地址无法判断。
你也可以完全去掉查询只保留路径,或者同时去掉查询和片段。每种变化都会产生不同的URL字符串,每一种原则上都可能指向不同的资源或同一资源的不同呈现方式。对首次建站者来说,关键点是域名在所有这些变化中保持不变。它是标识服务器的部分,而路径、查询和片段则细化你想从那台服务器获取什么。
这种区别在你开始分享链接或编写文档时很重要。如果你给别人一个包含查询字符串或片段的URL,他们会落在比只给域名更具体的位置。知道哪些部分该包含、哪些该省略是一项实用技能,能避免日后的混淆,尤其是当你与不熟悉项目结构的合作者协作时。
给假设项目做一张地址说明卡
记录你项目使用的每个地址的简短说明卡。对于我们的假设示例,卡片可以列出地址的用途,例如第一篇笔记的紧凑阅读视图,然后是完整URL,再是各标注部分:方案、域名、路径、查询和片段。手工写出这些内容或写在简单的文本文件中,能迫使你思考每个部分的作用以及你是否选择了合理的值。
在用途栏使用平实的语言。不要写“主页面”这样模糊的描述,而是描述访问者在那里会看到或做什么。例如,“以紧凑布局显示第一篇笔记并滚动到引言部分”比简单写“首页”能告诉你更多关于地址背后意图的信息。这个习惯在你中断后回到项目时,或者需要向合作者解释地址时特别有用。
检查卡片是否与实际字符串逐字符一致。缺少一个斜杠、拼错一个查询键名或忘记一个井号,都可能把一个正常工作的地址变成一个失效的地址。这是普通的校对工作,不是技术测试,但它能抓住那种当你专注于内容而非结构时容易忽略的小错误。
用手工复制与逐项标记核对说明卡
说明卡写好后,将其与原始地址字符串进行核对。以下步骤是简单的作者建议,帮助你建立对卡片准确性的信心。它们不需要任何特殊工具,只需要一个文本编辑器甚至一张纸。
完成每段标记后,将你的标注与之前写的卡片进行对比。如果全部一致,你的卡片就是可靠的。如果有差异,修正卡片并重复标记过程。这个复制、标记、比较的循环只需一两分钟,但它能建立把地址当作结构化字符串而非不透明文本块来对待的习惯。
标注每个分隔点,在方案之后、域名之后、路径之后和片段之前各插入一个空格或分隔符。这样你会得到五个可见的段落,可以逐一与卡片上的条目对照。如果发现某段的标签与卡片不符,回到卡片修正对应条目。
步骤 1
将完整地址复制到一个空白文本文件中。不要凭记忆重新输入;使用复制粘贴,确保你操作的是完全相同的字符串。
步骤 2
在每个边界处插入一个空格或分隔符来标记。在https://之后、example.org之后、/notes/first-page之后和#intro之前各放一个分隔符。你应该得到五个可见的段落。
步骤 3
为每个段落标注其角色:方案、域名、路径、查询、片段。将这些标注与说明卡上的条目进行对比。
保留这份说明供以后使用
把说明卡存放在你确实会回看的地方。项目文件夹中的一个纯文本文件就很合适,因为它会随其余文件一起保存。如果你使用笔记应用,可以建一个专门的页面或笔记本来存放地址记录。格式不如养成写下卡片并保持更新的习惯重要。
当你添加新页面或修改现有路径时,同时更新卡片。过时的卡片比没有卡片更糟,因为它可能误导你或合作者认为某个地址仍按原来的方式工作。把卡片当作随项目一起成长的活文档来对待。
这个做法在你编写文档、在邮件中分享链接或设置导航菜单时也有帮助。你不必猜测URL的哪些部分该包含,而是可以查看卡片后有意识地做出决定。随着时间推移,标注地址的习惯会变成自动行为,你也会更容易发现别人链接中的错误。
常见问题
域名和URL是同一个东西吗?
不是。域名标识你想访问的服务器,而URL是包含方案、路径以及可选的查询和片段的完整地址。域名是URL中的一个组成部分。12
井号后面的片段部分会发送到服务器吗?
不会。片段标识符永远不会随请求发送到服务器。浏览器在资源加载后本地处理它,用它滚动到书签位置。2
可以不改域名只修改路径或查询吗?
可以。域名保持不变,你可以自由变化路径、查询或片段。每种组合都会产生不同的URL,可能指向同一服务器上的不同资源或同一资源的不同视图。
What is a Domain Name? - Learn web development | MDN. 采集日期:2026-11-01. ↩︎ ↩︎
What is a URL? - Learn web development | MDN. 采集日期:2026-11-01. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎