URI, URL, URN

本文详细解释了URI、URL与URN的概念,并提供了它们之间的区别与联系。通过实例展示了如何使用这些标识符来标识和定位资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

URI Euler Diagram



URI(Uniform Resource Identifier, 即统一资源标识符), 通过名字或者是地址来标识一个资源。


 

图书馆的一本书(资源)。书的编号4144371可以标识这本书,计算机技术>电子电工>嵌入式系统>书架F>第一排>右边数第三本 也可以标识这本书。前者是通过名字后者是通过地址。


URL(Uniform Resource Locator, 即统一资源定位符), 定义了如何获取这个资源。表示URL的语法是这样的: 

scheme://username:password@domain:port/path?query_string#fragment_id


URN(Uniform Resource Name, 即统一资源名称), 定义了资源的id。表示URN的语法是这样的:

<URN> ::= "urn:" <NID> ":" <NSS>


URL 和 URN 是 URI的子集。

下面是一些例子:

  • URL: ftp://ftp.is.co.za/rfc/rfc1808.txt
  • URL: http://www.ietf.org/rfc/rfc2396.txt
  • URL: ldap://[2001:db8::7]/c=GB?objectClass?one
  • URL: mailto:John.Doe@example.com
  • URL: news:comp.infosystems.www.servers.unix
  • URL: telnet://192.0.2.16:80/
  • URN (not URL): urn:oasis:names:specification:docbook:dtd:xml:4.1.2
  • URN (not URL): tel:+1-816-555-1212 (?)


参考:



### URLURIURN 的区别与使用 #### 定义与概念 统一资源定位符(URL)、统一资源标识符(URI)以及统一资源名称(URN)都是用于识别网络上的资源的方式,但它们的具体定义和用途有所不同。 - **URI** 是一种广义的概念,表示任何可以用来唯一标识某个资源的方法。它是一个超集,涵盖了 URLURN[^1]。 - **URL** 是 URI 的子集,主要用于指定如何访问特定的资源。它不仅提供资源的位置信息,还包含了协议(如 `http` 或 `ftp`),主机名以及其他必要的参数来实现对资源的实际获取[^1]。 - **URN** 同样也是 URI 的一种形式,但它更侧重于命名而非定位。URN 提供了一种持久不变的方式来指代某物,而不依赖其物理位置。它的结构通常由三部分组成:“urn:”前缀后面跟着命名空间标识符(NID),再接着是该命名空间内的具体字符串(NSS)[^1]。 #### 使用场景对比 - 当开发者需要明确指出一个文件在网络中的确切地址并能够立即打开这个链接时,则会选用 URL 。例如,在 HTML 中通过 `<a>` 标签创建指向其他网页的超级链接就经常采用 HTTP 协议下的 URL 地址。 ```html <a href="https://www.example.com/page.html">Visit Example Page</a> ``` - 如果只是想表达某种抽象意义上的对象而不需要关心实际存储地点的话,那么可以选择使用 URN 来代替具体的路径描述。比如 ISBN 号码就可以作为书籍的标准 URN 表达方式之一: ```text urn:isbn:978-3-16-148410-0 ``` - 对于那些既希望保持灵活性又要求一定程度标准化的应用程序来说,可能就会综合运用到以上两种甚至更多类型的 URI 形式。例如 RESTful API 设计中经常会遇到这样的情况——某些端点可能会接受基于 ID 查询请求的同时也允许按照分类标签检索相关内容;此时便可以通过组合不同模式的 URI 实现更加丰富的交互逻辑[^2]。 #### 技术细节分析 从技术角度来看,每类 URI 都有自己的特点及适用范围: - **URL**: 包含足够的信息使得客户端可以直接连接服务器从而取得目标数据; - **URN**: 更加注重语义层面的意义传达而不是操作层面上的功能实现; - **通用规则**: 所有的 URL 均属于合法的 URI ,但是并非所有的 URI 能够充当有效的 URL [^3]. 综上所述,在 Web 开发过程中合理选择合适的 URI 类型对于构建高效稳定的服务至关重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值