URI 和 URL

URI (Universal Resource Identifier) 统一资源标志符
代表 资源的名称
URL (…Location) …定位符
代表 资源的路径地址

URN (…Name) …名称

URI分为种,URL or URN or (URL and URN)
区别:
通过URL找到资源是对网络位置进行标识
如:http://example.org/absolute/URI/with/absolute/path/to/resource.txt
ftp://example.org/resource.txt
通过URI找到资源是通过对名称进行标识,这个名称在某个空间中,并不代表网络地址
如:urn:issn:1535-3613

### URI URL 的区别及使用场景 URI(Uniform Resource Identifier,统一资源标识符) URL(Uniform Resource Locator,统一资源定位符)是网络编程中常见的术语。两者的定义、用途应用场景存在一定的差异。 #### 定义与范围 URI 是一个广义的概念,用于唯一标识某个资源。它包括两种主要类型:URL URN(Uniform Resource Name)。因此,所有 URL 都是 URI 的子集[^1],但并非所有 URI 都是 URLURLURI 的一种具体实现形式,主要用于描述资源的位置以及访问该资源的方法。例如,`http://example.com/resource` 是一个典型的 URL,它指定了协议(HTTP)、主机名(example.com)以及资源路径(/resource)。 URN 则是另一种类型的 URI,专注于通过名称来标识资源,而不涉及其位置或访问方式。例如,`urn:isbn:978-3-16-148410-0` 是一个 URN,表示特定书籍的 ISBN 编号[^1]。 #### 使用场景 在编程网络通信中,URI URL 的使用场景有所不同: 1. **URL 的典型使用场景**: - 网页地址:如 `http://www.example.com/page.html`。 - 文件下载:如 `ftp://ftp.example.com/file.txt`。 - 即时通讯:如 `irc://chat.example.com/#channel`[^1]。 - 数据传输:如 `mailto:user@example.com` 或 `tel:+1234567890`。 2. **URI 的典型使用场景**: - 资源标识:不仅限于网络地址,还可以用于标识抽象概念或实体。例如,XML 命名空间通常使用 URI 表示[^1]。 - 通用标识:如 `urn:uuid:12345678-1234-1234-1234-123456789abc`,这是一个 UUID 的 URN 表示法。 #### 示例代码 以下是一个简单的 Python 程序,用于解析 URL 并提取其组成部分: ```python from urllib.parse import urlparse url = "http://example.com/resource?query=123#fragment" parsed_url = urlparse(url) print(f"Scheme: {parsed_url.scheme}") # 输出协议部分 print(f"Netloc: {parsed_url.netloc}") # 输出主机名端口 print(f"Path: {parsed_url.path}") # 输出资源路径 print(f"Query: {parsed_url.query}") # 输出查询参数 print(f"Fragment: {parsed_url.fragment}") # 输出片段标识符 ``` #### 总结 在实际应用中,URL 更加常见,特别是在 Web 开发网络通信中。URI 则是一个更广泛的术语,涵盖了资源的标识定位功能。了解两者的区别有助于更好地设计系统架构选择合适的工具。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值