Save 15% on All Hosting Services

测试技能,享折扣

使用代码: Skills 开始使用
China
操作系统 管理

URI vs URL vs URN 解释:实际重要的区别

为什么 URI、URL 和 URN 感觉可以互换

why

你可能在现实中看到过这种标签转换。你的浏览器谈论 URL。API 文档谈论 URI。然后一个标准示例引入 URN,使其听起来像网络发明了第三个名称来表示同一事物。

这种混淆是正常的。这些术语确实出现在网络堆栈的不同部分,互联网并不总是足够友好地停下来解释原因。这不是读者的失败,也不是标准律师的琐碎知识。实用的方法是先从实践出发:URI 是总称,URL 是地址,URN 是稳定的名称。一旦这个模型点击,浏览器文档、HTTP 规范、API 参考和托管材料就不再听起来像是相互矛盾的。

快速参考:你首先需要的唯一术语

reference

在主要说明开始之前,你只需要少量的共享词汇,这个词汇表故意实用而不是详尽。

术语通俗语言含义
resource 📦被指向的事物:页面、文件、邮箱、API 目标、文档或命名项。
identifier 🆔用来指代该事物的标签或字符串。
scheme 🗺️开头部分,提示标识符的类型,例如 httpsmailtourn
host/domain 🌐面向用户的网络名称,例如 example.com,帮助定位服务。
path 🛣️指向网站或服务内部更深处的部分,例如 /docs/install
query ❓? 后添加的额外信息,通常用于过滤、ID 或选项。
fragment 🧩# 后的部分,指向资源内的一个部分,在客户端处理。
namespace 🗂️一个受管的命名空间,在特定系统内保持标识符有意义。

一分钟内的 URI vs URL vs URN

oneminute

如果你只想要简短版本,就是这样:如果它标识某物,就是 URI。如果它告诉你在哪里或如何到达它,就是在充当 URL。如果它旨在稳定地命名某物,就是在充当 URN。大多数日常浏览、网站和托管对话都在 URL 领域,因为它们涉及人和软件实际可以使用的地址。

术语通俗含义示例何时重要
URI标识符的广泛类别mailto:hello@example.com当文档或规范通用地讲述时
URL作为地址或访问路径工作的标识符https://example.com/docs当你指的是普通网址时
URN旨在保持稳定的标识符,即使位置改变urn:isbn:9780141036144当命名系统关心持久性时

以下是三个并排的干净示例,然后我们再展开:

https://example.com/docs
mailto:hello@example.com
urn:isbn:9780141036144

第一个是大多数读者已经知道的日常情况。第二个仍然是标识符,但不是网页。第三个是受管命名空间内的稳定名称。这就是整个地图的缩影。

URI 实际上是什么

uri

承重的想法来自 RFC 3986,但纯英文版本很简单:URI 标识资源resource 这个词听起来很抽象,直到你把它翻译回人类的例子。在本文中,它可以指网页、API 端点、文件、邮箱、文档,甚至注册表中的命名事物。

重要的区别是标识与访问。URI 可以告诉你某物是什么,而不承诺你可以打开它、获取它,甚至在浏览器中与之交互。这就是为什么”URI”比”网址”更广泛。它首先是关于命名或标识。

想象关系如下:

URI
├── URL  → identifies by location or access path
└── URN  → identifies by stable name inside a namespace

这个伞形比喻是要保留的。URL 和 URN 不是坐在 URI 旁边的竞争术语。它们坐在里面。

以下是 URI 可以覆盖的范围的快速提醒:

https://example.com/docs        → a webpage
mailto:hello@example.com        → a mailbox target
urn:ietf:rfc:3986               → a named standards document

📝 注意:并非每个 URI 都是你可以在浏览器中打开的东西。

有些 URI 是浏览器友好的,有些则不是。这是许多读者最需要的更正,因为它打破了将 URI 视为 URL 的正式同义词的习惯。

什么使 URL 成为 URL

url

URL 最简单的通俗含义仍然是网址。这是大多数人遇到这个术语的方式,这并不错。稍微更精确的版本是,URL 是那种 URI,它为你提供足够的位置或访问信息来到达资源,这就是为什么它在正常网络使用中占主导地位。

以这样一个熟悉的托管地址为例。它显示了读者已经每天看到的部分,即使他们没有正式命名它们:

https://shop.alexhost.com/products?id=42#reviews
│       │                 │           │  │
│       │                 │           │  └─ fragment
│       │                 │           └──── query
│       │                 └──────────────── path
│       └────────────────────────────────── host/domain
└────────────────────────────────────────── scheme

scheme 告诉软件它处理的是什么样的访问模式。host 或域告诉它要联系哪个服务。path 指向该服务内的位置。query 添加额外的指令或过滤器。fragment 与其他部分不同:它通常帮助客户端跳转到一个部分,例如 #reviews,它不作为请求的一部分发送到服务器。

这也是读者可能听到绝对相对引用的地方。绝对 URL 包括完整地址,如 https://example.com/docs/install。相对引用将其修剪为 /docs/install 之类的内容,这仅在当前基地址的上下文中有意义。你不需要这里的完整路由教程;你只需要认识到为什么两种形式都出现在开发者文档中。

在真实的托管网络工作中,这通常是人们最关心的层。干净的 URL 帮助用户信任他们点击的内容,帮助团队保持文档可读性,帮助企业随着时间的推移保持应用或营销路径一致。如果你部署网站、文档门户或店面,可读的 URL 结构比 URN 理论重要得多。

什么使 URN 不同

urn

URN 是 urn: 方案下的 URI,其工作与普通地址不同。它不是告诉你某物住在哪里,而是旨在持久地命名它,即使存储位置或检索方法稍后改变。这就是为什么这里最好的比喻是注册表或目录名称,而不是街道地址。

基本模式如下:

urn:<NID>:<NSS>

urn:isbn:9780141036144
urn:ietf:rfc:3986

NID 表示命名空间标识符:它告诉你你在哪个命名系统中,例如 isbnietfNSS 表示命名空间特定字符串:它是该系统内的实际名称。你也会看到 DOI 风格的持久命名在同一个广泛的问题家族中讨论,因为发布和编目系统深切关心随时间推移的稳定身份。

大多数人很少在浏览器中输入 URN 的原因很简单:浏览通常是关于访问,而不是注册表命名。URN 仍然很重要。它们出现在标准、编目、发布、身份系统和其他地方,其中名称需要保持有意义,即使事物移动。IANA URN 命名空间注册表仍在积极维护,这是 URN 是真实基础设施而不是死术语的好迹象。

⚠️ 警告:不要过度教授 URN 作为常见的浏览工具。它们很重要,但它们不是普通网络导航的中心,就像 URL 一样。

人们通常理解错误的关系

relationship

这是干净的层级声明:所有 URL 都是 URI,URN 是 URI,但并非每个 URI 都是 URL。这一句话解决了大部分混淆。当人们试图强制每个标识符进入严格的 URL 或 URN 框,并假设所有来源必须以相同的方式使用分割时,麻烦就开始了。

📝 注意:较旧的解释通常将 URL 和 URN 绘制为 URI 下的整洁子类型,而较新的网络面向来源使用 URL 更随意,URI 更通用。这就是为什么两个可信来源可以听起来不同而实际上没有处于战争状态。

W3C 澄清材料在这里很有帮助,因为它将经典视图与当代视图分开。经典解释将 URI 视为广泛的类别,并将 URL 和 URN 呈现为标识符可以表现的不同方式。当代习惯,特别是在面向浏览器的材料中,更宽松:URL 在实际网络对话中保持常见,而 URI 在规范中仍然是更安全的通用术语。

这也是为什么受控的边界情况,例如 mailto: 会引起辩论。它绝对是一个 URI。有些人很乐意称其为 URL,因为它使用方案并为软件提供了对目标采取行动的方式。其他人避免这样做,并为更明显的位置类情况保留 URL。最安全的初学者要点不是赢得论证。它是理解为什么论证存在。

示例安全阅读原因
https://example.com/docsURI 和 URL它标识资源并作为可检索的地址工作。
urn:isbn:9780141036144URI 和 URN它通过受管命名空间内的持久名称标识。
mailto:hello@example.com绝对是 URI;关于”URL”的分类辩论发生它标识目标并使用方案,但它不是人们首先想象的普通浏览器页面模型。

一旦你以这种方式看表格,心理结就松开了。URI 是广泛的阅读术语。URL 是日常地址术语。URN 是持久命名术语。来源中的分歧通常是关于强调,而不是整个模型被破坏。

为什么差异在实际工作中很重要

diffmatter

这种区别的实际价值不是让你在聚会上听起来更精确。它很重要,因为不同的技术材料谈论的是身份和访问的不同层。一旦你知道文档关心哪一层,词汇选择就不再感觉武断了。

浏览器和平台文档

现代浏览器和网络平台材料通常标准化为URL,因为该世界主要是关于解析、导航、源处理和浏览器中的地址类行为。这是人们打开页面、加载脚本、解析相对链接和移动通过网络面向位置的环境。

📝 注意:现代浏览器和平台标准通常更喜欢术语 URL,即使其他地方的较旧标准语言更广泛地使用 URI

HTTP、API 和规范语言

HTTP 和协议文档通常更喜欢URI,因为它们更通用地谈论目标资源。它们并不总是描述完整的浏览器风格地址栏字符串。有时他们描述的是请求目标、相对引用或更广泛的资源身份概念。

这是使这更容易看到的请求示例:

GET /docs/install?lang=en HTTP/1.1
Host: example.com

该请求不重复完整的 https://example.com/docs/install?lang=en 形式,但协议仍然清楚地针对资源。这是 HTTP 语义和 API 材料经常谈论资源 URI 的原因之一。语言需要空间来容纳”你在浏览器中输入的完整地址”以上的内容。

托管和面向业务的网络工作

在托管、营销、应用部署和面向业务的网络对话中,关注通常要狭隘得多,更实际:干净的 URL、稳定的路径、合理的重定向、可读的域和可预测的结构。如果你在 AlexHost VPS 或任何类似的托管平台上部署应用或文档网站,你的日常运营问题通常是 URL 设计是否清晰和稳定——而不是 URN 是否会更哲学地描述资源。

这是文章回到的真实论点。差异最重要的是作为阅读工具。它帮助你理解为什么浏览器文档说一件事,API 规范说另一件事,托管指南主要关注 URL。你不需要在每句话中都有完美的术语。当上下文改变时,你需要正确的心理模型。

何时说 URL、URI 或 URN

choice

此时,最有用的结果是一个你实际上可以重复使用的简短规则。将其视为速记表,而不是标准考试。

如果你指的是…说…
普通网址、页面位置或托管路径URL
通常的资源标识符,特别是在规范或 API 文档中URI
实际 urn: 命名系统内的持久名称URN

💡 提示:在日常网络和托管对话中使用 URL。当类型通用、混合或规范定义时使用 URI

这个快捷方式大多数时候都能让你找到正确的词。如果你在谈论浏览器、网站、托管应用或面向业务的网络内容时默认使用 URL,你通常没问题。为更广泛或更正式的情况保留 URI,为实际涉及真实持久命名系统的情况保留 URN

常见误解和快速常见问题

myths

大多数剩余的混淆来自以不同形式重复的相同几个问题。一旦这些清楚了,话题通常就保持清楚。

  • 每个 URL 都是 URI 吗?是的。在广泛的现代模型中,URL 坐在更大的 URI 类别内。反之亦然不成立,因为某些 URI 不是普通的地址类定位器。
  • mailto: 是 URL 还是只是 URI?最安全的简短答案是它绝对是 URI。你是否也称其为 URL 取决于你使用术语的严格程度,这正是为什么它作为边界情况比作为你的第一个教学示例更好。
  • #fragment 会发送到服务器吗?通常不会。片段主要在客户端处理,这就是为什么它通常用于在主资源已加载后跳转到页面内的部分。
  • 相对引用是这个对话的一部分吗?是的,因为开发者经常使用 /docs/install 之类的东西,即使没有写出完整地址。它们在浏览器、HTML、路由和 HTTP 请求目标周围的 URL 和 URI 讨论中最重要。
  • 为什么现代文档仍然混合术语?因为它们通常谈论不同的层。浏览器和平台文档倾向于 URL,而标准、HTTP 和 API 材料通常将 URI 保留为更广泛的阅读术语。
备份 管理
管理
Linux 管理

Save 15% on All Hosting Services

测试技能,享折扣

使用代码: Skills 开始使用
快速获取信息
快速获取信息

节省您的时间,快速解答您的问题

自己解决问题
自己解决问题

知识库包含详细的教程,让您可以自己处理技术任务。

提高技能
提高技能

通过使用知识库,您可以扩展有关虚拟主机和相关主题的知识

插图和图表
插图和图表

许多文章都配有插图和图表,使复杂的过程和设置更容易理解。

实用技巧
实用技巧

你会找到有用的技巧和窍门,以提升你的网站或网络应用的性能。

给定主题的相关性
给定主题的相关性

知识库中的信息会定期更新,以反映 IT 基础设施和 AlexHost 服务领域的最新变化和趋势。

没有找到您要找的主题?有一个完美的解决方案

杰出的客人和客户!您的便利是我们的首要任务!如果您在安装任何特定软件或部署服务器时遇到困难,请随时联系我们。我们重视您的意见,并随时准备帮助您解决问题。

此外,我们还为您提供了积极参与创建知识库的机会。如果您有希望纳入我们数据库的主题或问题,请告诉我们!我们随时准备根据您的需求撰写详细的文章和指南。

我们努力使您在 AlexHost 的体验尽可能方便和高效,您对知识库的贡献有助于我们实现这一目标。联系我们 ->
info@alexhost.com 并让我们知道如何让您的住宿体验更加完美。

Solution Image