URL 与 URI:URL 和 URI 之间的关键区别

URL 和 URI 的主要区别

  • URL 是 URI 的一个子集,它指定了资源的获取机制和位置,而 URI 是 URL 的一个超集,用于标识资源。
  • URL 的主要目的是获取资源的地址,而 URI 的主要目的是查找资源。
  • URL 仅用于定位网页;另一方面,URI 用于 HTML、XML 和其他文件。
  • URL 包含协议、域名、路径、哈希、查询字符串等组件,而 URI 包含方案、权限、路径、查询等组件。
  • URL 的示例是: https://google.com,而 URI 的示例是: urn:isbn:0-486-27557-4。

Difference Between URL and URI
URL 和 URI 的区别

在这里,我分析了 URL 和 URI 之间的区别,并将全面评估它们的优缺点。

什么是 URL?

URL 是计算机网络上文档和协议用于检索资源的全局地址。URL 最常用于引用网页(HTTP),但也可用于通过 JDBC、电子邮件(mailto)、文件传输(FTP)等访问数据库。URL 的全称是统一资源定位符(Uniform Resource Locator)。

什么是 URI?

URI 是一个包含字符的字符串,用于标识物理或逻辑资源。URI 遵循语法规则以确保统一性。此外,它还通过分层命名方案来保持可扩展性。URI 的全称是统一资源标识符(Uniform Resource Identifier)。

Types of URI
URI 的类型

如上图所示,URI 有两种类型:

  1. URL:URL 指定了计算机网络上的位置以及检索它的技术。
  2. URN:统一资源名称 (URN) 是一个互联网资源,指定了 URN 方案。

URI 和 URL 的维恩图

Ven Diagram of URI and URL

URI 和 URL 的维恩图

如上图所示,“你的名字”可以是一个 URI,因为它标识了你。但它不能是 URL,因为它不帮助任何人找到你家的位置。

另一方面,“你家的位置”既可以是 URI,也可以是 URL。原因是它既标识了你,又为你提供了一个家的位置。

URL 的语法

这是 URL 的语法

http://www.domainname.com/folder-name/web page-file-name.htm

我们可以将上面的 URL 分为以下几个部分:

  • 协议:它是 URL 的第一部分。这里,协议名称是超文本传输协议(HTTP)。
  • http://www.domainname.com/:这是您的域名。它也称为服务器 ID 或主机。
  • /folder-name/:这表示所引用的网站页面“存储”在 web 服务器的给定文件夹中。
  • web-page-file-name.htm:这实际上是一个网页文件名。“.htm”是 HTML 文件的扩展名,表明它是一个静态网页。文件名可以有不同的扩展名,或者取决于您如何设置 web 服务器。可能根本没有扩展名,URL 可能会以斜杠(/)结尾。

URL 示例

此 URL 示例包含文件夹但没有扩展名。

https://career.guru99.com/category/heavy-industries/

此 URL 示例没有文件夹。

https://guru99.com.cn/what-is-sap.html

此 URL 示例没有扩展名。

https://career.guru99.com/top-33-investment-banking-interview-questions-answers/

URI 的语法

这是 URI 的语法

URI = scheme:[//authority]path[?query][#fragment]

URI 包括以下部分:

  • Scheme component(方案组件):这是一个非空组件,后面跟着一个冒号(:)。方案包含以字母开头,后跟任何数字、字母、句点(.)、连字符(-)或加号(+)的组合。众所周知的方案包括 HTTP、HTTPS、mailto、file、FTP 等。URI 方案必须在互联网号码分配局(IANA)注册。
  • Authority component(权限组件):这是一个可选字段,前面是 //。它包括:
  1. 可选的用户信息子组件,可能包含用户名和密码(可选)。
  2. 包含 IP 地址或注册名称的 host 子组件。
  3. 可选的 port 子组件,后面跟着一个冒号(:)。
  • Path(路径):路径包含由斜杠分隔的段序列。
  • Query component(查询组件):这是可选的,前面是问号(?)。查询组件包含非分层数据的查询字符串。
  • Fragment component(片段组件):这是一个可选字段,前面是井号(#)。片段组件包括一个片段标识符,用于指示二级资源。

URI 示例

未提及协议。

www.guru99.com

未提及域名。

what-is-sap.html

协议提及。

ldap://[2001:db8::7]/c=GB?objectClass?one
mailto:abc@example.com 
tel:+1-816-555-1212  
telnet://192.0.2.16:80/ 

关于 URN 的困惑

关于 URN 有一个令人困惑的地方:如果您实现了 https、ftp 等协议,那么它就被称为 URL,即使它是一个 URI。

这种争论的问题在于,相关的 RFC 非常冗长,有时甚至相互矛盾。例如,RFC 3986 表示 URI 可以是名称、定位符,或两者兼而有之。

为什么是 URL?

以下是我专注于使用 URL 的重要原因:

  • URL 中编写的信息使您能够通过单击鼠标即可从一个网页切换到另一个网页。
  • URL 告诉您如何访问特定资源。
  • 每当您在浏览器中输入 URL 或单击任何超文本链接时,您的 Web 浏览器 都会向 Web 服务器发送请求以下载一个或多个文件。
  • URL 是 Web 上给定唯一资源的地址,包括网页、图像、文件、媒体、Web 应用程序等。
  • 一个网站的 URL,或 域名,是您网站最重要的部分之一。通过使用通常以 .org、.com 或 .net 结尾的简单词语或字符串,您可以为您的网站带来流量。

为什么是 URI?

让我分享我使用 URI 的重要原因:

  • 统一资源标识符对于语义网至关重要,因为它能防止歧义。
  • URI 以统一的格式搜索资源的名称和位置。
  • 它包含特定文件名和路径的字符字符串。
  • URI 提供了一种方法,允许其他系统通过万维网或网络访问资源。Web 浏览器和 P2P(点对点)文件共享软件 使用它来查找和下载文件。
  • URI 允许定义新的文件类型,而不会影响您已有的旧文件。
  • 您可以将单个资源与多个表示形式关联。

URL 和 URI 的区别

在我们的分析中,URL 和 URI 的主要区别如下:

Difference Between URL and URI
URL vs URI
URL URI
URL 代表统一资源定位符(Uniform Resource Locator)。 URI 代表统一资源标识符(Uniform Resource Identifier)。
URL 是 URI 的一个子集,它指定了资源的获取机制和位置。 URI 是 URL 的一个超集,它通过 URL、URN(统一资源名称)或两者来标识资源。
主要目的是获取资源的地址或位置。 URI 的主要目的是查找资源,并通过名称或位置将其与其他资源区分开。
URL 仅用于定位网页。 用于 HTML、XML 和其他文件、XSLT(可扩展样式表语言转换)等。
方案必须是协议,如 HTTP、FTP、HTTPS 等。 在 URI 中,方案可以是任何东西,如协议、规范、名称等。
URL 中提供了协议信息。 URI 中未提供协议信息。
URL 示例: https://google.com URI 示例: urn:isbn:0-486-27557-4
它包含协议、域名、路径、哈希、查询字符串等组件。 它包含方案、权限、路径、查询、片段组件等组件。
所有 URL 都可以是 URI。 并非所有 URI 都是 URL,因为 URI 可以是名称而不是定位符。

如何选择 URL 或 URI

根据我的经验,URL 和 URI 的主要区别在于,URL 是 URI 的一个子集,它指定了资源的获取机制和位置,而 URI 是 URL 的一个超集,用于标识资源。我们仅使用 URL 来定位网页;然而,URI 用于 HTML、XML 和其他文件,如 JSTL 和 XSTL。