当前位置: 首页 > news >正文

彻底弄清URI、URL、URN的关系

URI、URL与URN关系详解

URI(统一资源标识符)、URL(统一资源定位符)和URN(统一资源名称)是互联网资源标识的三个重要概念,它们之间存在包含和从属关系。

一、核心概念关系

  1. URI(Uniform Resource Identifier)‌:广义的资源标识符概念,是URL和URN的父集‌。

    • 作用:唯一标识互联网或本地资源。
    • 示例:邮箱地址example.com、图书编号20451450523等‌。
  2. URL(Uniform Resource Locator)‌:URI的子集,通过位置定位资源‌。

    • 特点:包含访问协议和资源位置信息。
    • 示例:https://www.example.com/page.html。
  3. URN(Uniform Resource Name)‌:URI的子集,通过名称标识资源‌。

    • 特点:不依赖资源位置,具有持久性。
    • 示例:urn:issn:1535-313(期刊标识)‌。

二、三者区别对比

特性URIURLURN
标识方式广义标识位置定位名称标识
持久性取决于实现位置变更即失效持久唯一
示例邮箱地址https://example.comurn:isbn:0451450523
包含关系包含URL和URNURI的子集URI的子集

三、技术实现细节

  1. URI组成结构‌:

    text

    http://user:pass@example.com:80/home/index.html?age=11#mask ├─ 协议方案名 ├─ 登录信息(可选) ├─ 服务器地址 ├─ 端口号(可选) ├─ 文件路径 ├─ 查询字符串(可选) └─ 片段标识符(可选)

  2. URN特点‌:

    • 解决URL依赖位置的问题‌。
    • 即使资源位置变更,URN仍有效。
    • 常用于标识书籍、期刊等持久资源。
  3. URL局限性‌:

    • 主机或路径变更会导致失效‌。
    • 示例:http://aaa.com/images/cat.jpg若图片移动到bbb服务器则无法访问‌。

四、实际应用场景

  1. URL典型应用‌:

    • 网页地址(俗称网址)‌。
    • 资源下载链接。
    • API接口地址。
  2. URN典型应用‌:

    • 国际标准书号(ISBN)。
    • 国际标准期刊号(ISSN)。
    • 持久化数字标识。
  3. URI通用应用‌:

    • 任何需要唯一标识资源的场景。
    • 既包含定位也包含命名的混合系统。

总结三者关系:‌URI是广义概念,包含URL(通过位置定位)和URN(通过名称标识)两种具体实现方式‌‌。所有URL都是URI,但并非所有URI都是URL;同样,所有URN都是URI,但URI不一定是URN‌。

http://www.xdnf.cn/news/1390699.html

相关文章:

  • BGP路由协议(二):报文的类型和格式
  • OpenAI宣布正式推出Realtime API
  • 网络_协议
  • Qt事件_xiaozuo
  • 快速深入理解zookeeper特性及核心基本原理
  • Replay – AI音乐伴奏分离工具,自动分析音频内容、提取主唱、人声和伴奏等音轨
  • rust打包增加图标
  • 常见视频编码格式对比
  • 【3D入门-指标篇下】 3D重建评估指标对比-附实现代码
  • 哈希算法完全解析:从原理到实战
  • Python OpenCV图像处理与深度学习
  • 网页提示UI操作-适应提示,警告,信息——仙盟创梦IDE
  • 【贪心算法】day4
  • 实现自己的AI视频监控系统-第二章-AI分析模块5(重点)
  • 【开题答辩全过程】以 基于SpringBootVue的智能敬老院管理系统为例,包含答辩的问题和答案
  • 为什么特征缩放对数字货币预测至关重要
  • 克隆态驱动给用户态使用流程
  • Python 异步编程:await、asyncio.gather 和 asyncio.create_task 的区别与最佳实践
  • 【DeepSeek】公司内网部署离线deepseek+docker+ragflow本地模型实战
  • 软考-系统架构设计师 办公自动化系统(OAS)详细讲解
  • 【C语言】深入理解指针(2)
  • [打包压缩] gzip压缩和解压缩介绍
  • webservice在进行run maven build中出现java.lang.ClassCastException错误
  • C++基础(⑤删除链表中的重复节点(链表 + 遍历))
  • 【C++闯关笔记】STL:vector的学习与使用
  • Spring Security 传统 web 开发场景下开启 CSRF 防御原理与源码解析
  • CorrectNav:用错误数据反哺训练的视觉语言导航新突破
  • Apache服务器IP 自动跳转域名教程​
  • electron-vite 配合python
  • UPDF for mac PDF编辑器