在准备上线任何网站之前,你几乎每天都要和网站地址打交道。这篇文章把一个假设的URL逐段拆开,帮助你在面对任何地址时都能清楚地说出每一部分的含义。
域名与完整URL分别回答什么问题
假设你正在准备一个小型个人项目,想给它一个网站地址。在往浏览器里输入任何内容之前,先弄清楚地址中不同片段各自告诉你什么,会很有帮助。请看这个假设字符串:https://example.org/notes/first-page?view=compact#intro。这个地址并不指向一个真实存在的页面,它只是为了让我们拆解和观察每一部分而构造的。即使背后没有实际运行的网站,这个字符串仍然遵循所有网站地址共同的结构规则。
域名回答的是一个具体问题:浏览器应该联系哪台服务器?域名是互联网基础设施的关键组成部分,它们为互联网上任何可用的Web服务器提供了一个人类可读的地址。在我们的例子中,域名是example.org。它告诉浏览器把请求发往哪里,但并没有说明你想要那台服务器上的哪一个具体页面或资源。1
完整的URL回答的是一个更宽泛的问题:应该获取该服务器上的哪个具体资源,以及在什么条件下获取?URL(统一资源定位符)是互联网上某个唯一资源的地址。同一个域名可以承载许多不同的资源,而URL负责区分它们。所以域名把你带到正确的建筑,URL的其余部分则告诉你该走进哪个房间、到了之后该提出什么请求。2
在本例中逐段标出各组成部分
再次看这个例子:https://example.org/notes/first-page?view=compact#intro。第一部分https是方案(scheme),它指示浏览器必须使用哪种协议来请求资源。对于今天的大多数网站来说,这个值通常是HTTPS或其未加密版本HTTP。2
下一部分example.org是域名,它位于URL中称为权限(authority)的部分之内。权限部分通过字符组合://与方案分隔开来。在我们的例子中,域名就是浏览器将要联系的主机。2
域名之后是路径:/notes/first-page。路径指向Web服务器上的一个资源。路径之后,问号引出查询字符串:view=compact。参数是提供给Web服务器的额外信息,以键值对的形式呈现。最后,井号引出片段:intro。锚点代表资源内部的一个书签,为浏览器提供方向,使其显示该书签位置的内容。因此问号标志着查询参数的开始,井号标志着片段标识符的开始。2
保持主机不变,对比不同路径与查询
现在把主机部分固定为example.org,只改变路径和查询。假设你写出https://example.org/gallery/photos?sort=date。域名没有变化,所以浏览器仍然会联系同一台服务器。变化的是路径和查询字符串:路径现在指向地址字符串中的另一个位置,查询现在携带了不同的键值对。
如果你完全去掉查询,写成https://example.org/gallery/photos,字符串变短了,但仍然遵循相同的模式:方案、域名、路径。没有问号只是意味着不包含查询参数。如果你同时去掉片段,井号之后不再出现任何内容,浏览器也没有书签可以滚动到。每个可选部分都在增加信息;去掉它并不会破坏结构。
注意,比较这些字符串只能告诉你文本上有什么不同,并不能告诉你服务器对每个地址实际会返回什么。两个路径可能指向相同的内容,也可能其中一个返回错误。字符串是一个请求;响应取决于服务器的配置方式。对于上线前理解地址结构而言,准确阅读字符串本身就是需要掌握的技能。
为假设项目制作一张地址说明卡
记录一张简短的说明卡,写下你的假设项目的用途、完整地址以及各已识别的部分。对于我们的例子,用途可以写成:笔记区第一页的阅读视图。完整地址是https://example.org/notes/first-page?view=compact#intro。方案是https,域名是example.org,路径是/notes/first-page,查询是view=compact,片段是intro。
在每个部分的值旁边用一句话标注它的作用。例如,在路径旁可以写「定位服务器上的资源」,在查询旁可以写「向服务器传递额外指令」。这些简短的标签帮助你在不重新查阅参考文章的情况下回忆每一部分的功能。
保持说明卡简短,每个部分一行即可。目标不是为别人撰写文档,而是创建一个快速参考,让你在撰写内容、设置链接或向合作者解释项目时能够随时查看。
手工复制与逐项标记来核对说明卡
检查你的说明卡是否正确:把完整地址复制到一个纯文本编辑器中,用空格或注释标出每个边界。例如你可以写成:https :// example.org /notes/first-page ?view=compact #intro。把分隔符单独隔离出来,更容易确认你正确地识别了每一部分。
以问号和井号作为主要地标。域名与问号之间的所有内容属于路径;问号与井号之间的所有内容属于查询;井号之后的所有内容属于片段。如果你的说明卡把某个值归到了错误的部分,这种快速扫描就能发现错误。
每当为项目添加一个新地址时,重复这个检查。这个习惯只需要片刻时间,却能捕捉常见的错误,比如把查询参数放在了井号之后,或者忘记在路径开头加上斜杠。
保留说明卡供以后使用
把说明卡存放在你真正会去看的地方:一个笔记文件、项目的readme,或者一个加了书签的文档。格式不如可及性重要——如果你必须翻遍文件夹才能找到它,你就不太可能去用它。
当你之后撰写内容并链接到站内页面时,回看说明卡确认路径和查询参数与你的意图一致。当你有多个相似页面、区别仅在于一个查询值时,这一点尤其有用。
随着时间推移,你可能会为项目中不同的地址积累多张说明卡。这完全没问题。每张卡片的用途相同:用人类可读的方式快速总结一个特定地址字符串的含义以及每一部分的贡献。你可以随着项目的发展来扩展、简化或重新整理它们。
常见问题
URL中井号后面的片段会发送给服务器吗?
不会。井号后面的部分也称为片段标识符,它永远不会随请求发送给服务器。它由浏览器使用,用于在已加载的资源中滚动到特定位置。2
域名可以单独存在而不带路径或查询吗?
可以。像https://example.org这样的URL只包含方案和域名。路径、查询和片段都是可选部分。浏览器会请求该域名根部的默认资源。2
改变查询字符串一定会改变服务器返回的内容吗?
不一定。查询字符串是对额外处理的请求,但每台Web服务器对参数有自己的规则。两个不同的查询字符串可能返回相同的内容,也可能其中一个被完全忽略。阅读字符串告诉你的是请求了什么,而不是会得到什么。2
What is a Domain Name? - Learn web development | MDN. 采集日期:2026-11-01. ↩︎
What is a URL? - Learn web development | MDN. 采集日期:2026-11-01. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎