URI、URL、URN概念及对照表 先做简单词义解释因为我一开始以为URI和URL是一样的所以先区分这三个最后一个词什么意思方便不记混-URL → L Locator定位符- URI → I Identifier标识符【I是i的大写】- URN → N Name名称1.URI统一资源标识符最大概念用来唯一标记资源2. URL统一资源定位符URI子集带有访问机制、位置信息可以直接寻址获取资源http、ftp、file完整结构协议:// 域名 / 路径参数3. URN 只给资源一个永久唯一名字不提供地址、没有访问协议浏览器不能直接打开固定以 urn: 协议开头的永久命名规范只是 URI 里其中一套 schemeURI所有资源标识符字符串总称├─ URL带协议、地址可以直接访问网页、接口换服务器地址会变└─ URN永久名称无位置无法直接访问换服务器名称不变类型特征浏览器直接访问示例运用URI(统一资源标识符)统称唯一标识一个资源不一定抽象概念只有URL形式的URI才能直接请求下面俩个都属于URIHTTP Request-URI、HTML href/src、XML/JSON 命名空间、REST API 路径、OAuth redirect_uri、各类数据库连接抽象描述URL(统一资源定位符)标明资源位置访问方式可以协议 地址 路径 参数https://test.com/user/info?id1浏览器地址栏、Burp 抓包目标、漏洞扫描 / PoC 地址、API 端点、Webhook、爬虫链接、JDBC 连接串、恶意钓鱼链接分析URN( 统一资源名称资源永久名称不提供格式固定前缀urn:urn:isbn:9787111532644含义ISBN 编号为 9787111532644 的书籍。ISBN 编号、UUID、RFC 文档引用、XML 命名空间、语义网资源永久标识。Web 渗透极少接触。URL 侧重「在哪里找到资源」URN 侧重「这个资源叫什么名字」网站接口路径 /api/userinfo 只是路径片段拼接域名与协议后才能构成完整 URL。官方文档汇总文档说明链接RFC 3986URI 通用语法定义 URL 与 URI 的关系https://datatracker.ietf.org/doc/html/rfc3986RFC 8141URN 语法标准https://datatracker.ietf.org/doc/html/rfc8141有几份 RFC 对RFC3986做了补充和更新如 RFC 6874、RFC 8820但没有取代它存在有一部分 URI既不属于 URL也不属于 URN其他 URI拥有独立 scheme不是 urn: 前缀、同时严格意义不属于经典 URL实例mailto:testshturl. tel:8613800000000news:comp.lang.javadata:image/png;base64,xxxx既不是 URL也不是 URN原因❌ 不是 URN没有 urn: 开头不遵循 URN 命名空间规范❌ 严格意义不属于传统 URL传统 URL 定义依托网络主机定位资源http/ftp 这类带 // 域名结构✅ 合法 URI符合 RFC3986 通用语法用来标识一类资源。小知识日常开发中很多人宽泛把 mailto、tel 统称为 URLmongodb://localhost:27017口语大家常叫数据库 URL标准术语MongoDB 连接 URI