在上网或查看网站时,您可能多次遇到“URI”和“URL”这两个词。这是 Web 的两个重要概念,并且大多数情况下可以互换使用。但它们彼此却并不完全相同;URI 和 URL 的主要区别在于 URI 可以同时表示资源的 URL 和 URN,而 URL 只能指定 Internet 上资源的地址。在本文中,我们将分别了解 URI 和 URL,以及如何区分两者。

什么是 URI?

URI (Uniform Resource Identifier) – 统一资源标识符。是指 Internet 上的资源的字符串标识符。它是一个字符串,用于使用位置、名称或两者的组合来标识 Internet 上的任何资源。

一个 URI 有两个子集;URL(统一资源定位符)和 URN(统一资源号)。如果它仅包含名称,则表示它不是 URL。我们在网络中主要看到的是 URL 和 URN,而不是 URI。

URI 包含协议、权限、路径、查询和片段。常见的 URI 协议有 http、https、ftp、 Idap 、telnet 等。

URI 的语法

URI 的语法如下所示:

协议:[//权限]路径[?查询][#片段] 

协议: URI 的第一个组件是协议,它包含一系列字符,可以是字母、数字、加号或连字符 (_) 的任意组合,后跟冒号 (:)。比较流行的协议有http、file、ftp等。这些协议应在 IANA 注册。

权限:权限组件是可选的,前面有两个斜杠 (//)。它包含三个子组件:

userinfo:它可能包含一个用户名和一个以冒号分隔的可选密码。子组件后跟 @ 符号。

主机:它包含注册名称或 IP 地址。IP 地址必须用 [] 括号括起来。

端口:可选

路径:它由一系列由斜杠(/)分隔的路径段组成。URI 总是指定它;但是,指定的路径可能为空或长度为 0。

查询:它是一个可选组件,前面有一个问号(?)。它包含一个非分层数据的查询字符串。

片段:它也是一个可选组件,前面有一个井号(#)。它由一个片段标识符组成,该标识符为辅助资源提供方向。

URI 示例

mailto:hey.Doe@example.com

news:comp.infosystems.www.servers.unix

urn:oasis:names:specification:docbook:dtd:xml:4.1.2

什么是URL?

URL(uniform resource locator)- 统一资源定位符。用于在网络上查找资源的位置。它是资源的标识和访问该资源的方式。一个 URL 总是显示一个唯一的资源,它可以是 HTML 页面、CSS 文档、图像等。

URL 使用一种协议来访问资源,可以是 HTTP、HTTPS、FTP 等。

URL 主要是指网站的地址,也就是我们常说的网址,用户可以在他们的地址栏中找到。下面给出了一个 URL 示例:

https://www.codesou.cn/program/php/2453.html

注意:所有 URL 都可以是 URI,但 URI 不全都是 URL。这是因为 URI 包含 URL 和 URN 并表示 URL 或 URN,或两者兼而有之。

URL 的语法

每个 HTTP URL 都遵循其通用 URI 的语法。因此 URL 的语法也类似于 URI 的语法。如下所述:

协议:[//权限]路径[?查询][#片段] 

上面的 URL 由以下部分组成:

协议:URL 的第一个组件是协议,它表示浏览器在请求资源时必须使用的协议。网站常用的协议是 HTTP 或 HTTPS。

权限:权限包括两个子组件,域名和端口,用冒号分隔。域名可以是任何东西,资源的注册名称,如 www.codesou.cn,端口是访问 Web 服务器上资源的出入口。端口号 80 用于 HTTP,443 用于 HTTPS。

路径:路径表示网络服务器上资源的完整路径。它可以像 /program/php/index.html。

查询:它是包含名称和值对的字符串。如果在 URL 中使用它,它会跟随路径组件并提供信息。如“?key1=value1&key2=value2”。

片段:它也是一个可选组件,前面有一个井号(#)。它由一个片段标识符组成,该标识符为辅助资源提供方向。

URI 和 URL 之间的主要区别

URI 包含 URL 和 URN 以标识资源的名称和位置;相反,URL 是 URI 的子集,仅标识资源的位置。

URI 的示例是 urn:isbn:0-476-27557-4,而 URL 的示例是 https://www.codesou.cn。

URI 也可用于在 HTML、XML 和其他文件中查找资源,而 URL 只能用于定位网页。

每个 URL 都可以是一个 URI,而每个 URI 并不总是 URL。

URI和URL的区别表

URI 网址
URI 是统一资源标识符的首字母缩写词。 URL 是统一资源定位器的首字母缩写。
URI 包含两个子集,URN,它表述名称,和 URL,它表述位置。 URL 是 URI 的子集,它表述资源的唯一位置。
URI 不一定都是 URL,因为它们可以表述名称或位置。 URL 一定是 URI,因为每个 URL 只能包含位置。
URI 旨在通过使用资源名称或资源位置来识别资源并将其与其他资源区分开来。 URL 旨在查找网络上资源的位置或地址。
URI 的示例可以是 ISBN 0-486-35557-4。 URL 的一个示例是 https://www.codesou.cn。
它通常用于 XML 和标记库文件(如 JSTL 和 XSTL)来识别资源和二进制文件。 它主要用于搜索互联网上的网页。
URI 协议可以是协议、名称、规范或任何内容。 URL的协议通常是HTTP、HTTPS、FTP等协议。

结论

根据上面的讨论,我们现在可以区分 URI 和 URL。URI 是一个字符序列,通过位置、名称或Internet 上可用的两者来标识 Web 资源。而 URL 是一个字符序列,仅标识 Internet 上可用资源的位置。