URI与URL有什么区别?详细差异比较

2021年11月28日22:55:27 发表评论 968 次浏览
URI与URL有什么区别?详细差异比较
URI与URL差异比较

我们每天都会使用许多 URL。有时我们输入它们,有时我们只是被另一个重定向到一个 URL。有趣的是,我们大多数人认为 http://google.com 或 http://facebook.com 只是 URL,但只有少数人知道我们也可以将它们称为带有“I”的 URI。事实上,URI 是 URL 的超集,称为 URN。因此,我们可以安全地得出所有 URL 都是 URI 的结论。然而,事实并非如此。

URI与URL有什么区别?

因为 URI 可以是资源的名称或位置。但 URL 只是位置。一个快速的现实例子来理解这一点是——

你的名字,说约翰是 URN。你住的地方,或者你的地址,比如#34, Canter Street,就是 URL。你可以通过你的姓名或地址被识别为唯一的人。该唯一标识就是 URI。虽然你的姓名可以是你的唯一标识符 (URI),但它不能是 URL,因为你的姓名无助于查找你的位置。换句话说,URI(即 URN)不是 URL。

现在让我们回到互联网世界。在本文中,我们将讨论 URL 和 URI 是什么,然后讨论两者之间的一些细微差别。

在此之前,如果你曾经想过——

URI 或 URL 是如何产生的?谁创建和批准了它们,基于什么?为什么两者之间存在混淆?

相信我,这是一个有趣的快速信息,你不会后悔阅读。

你一定听说过W3C(万维网联盟)和 IETF(互联网工程任务组)。我们今天使用的 www 模型是由 W3C 创始人 Tim Berners-Lee 爵士创建的,此后 W3C 定义了 Web 和 HTML 规范。W3C 是 URI 和 URL 定义的利益相关者。IETF 是一个开放的国际社区,致力于制定互联网相关标准。出于这个原因,W3C 和 IETF 协同工作,虽然 IETF 对 URL 和 URI 给出了不同的定义,但网络上的一些专家可以互换使用它,因此造成了很大的混乱!

URI与URL差异比较:什么是URI?

URI 代表统一资源标识符。它可以是名称、定位器或两者兼而有之。URI 可以包含 URL 和 URN。但是,当 URI 只是一个名称时,这意味着它不是一个 URL。

URI 以相同的顺序包含方案、权限、路径、查询和片段。我们使用的一些最常见的 URI 方案是 HTTP、https、ftp、ldap、mailto、telnet、gopher、新闻等……

通用 URI 语法遵循 IEFT RFC 3986。

语法是——

URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]

在我为你举一些例子之前,我想知道为什么它被称为“统一”会很好。为什么不只是资源标识符?

一致性不仅允许在同一上下文中使用不同的资源标识符,而且还允许跨资源标识符的通用约定的统一语义表示。这也意味着在不干扰现有资源的情况下更容易引入新的资源 ID。

URI与URL有什么区别:现在来看例子——

https://www.lsbin.com - 这是我们所知道的典型 URI 并将其称为 URL。

这个怎么样?

tel:+1-816-345-1212

以上是一个URI,但不是一个URL。它标识一个资源。资源可以是任何东西。它不必总是一个 Web 服务。它可以是图像、文档或多个资源的集合。

在要点中,URI 可以是

  • URL
  • URN

网址

URI与URL有什么区别?现在我们知道了 URI 是什么,URL 也应该很清楚了。永远记住——URI 可以包含 URL,但 URL 仅指定资源的地址。顾名思义,它是一个“定位器”。因此,URI 比 URL 更广泛。

URL 包含以下信息 –

  • 用于访问资源的协议 - HTTP: https: ftp: etc...
  • 使用 IP 地址或域名的服务器位置——例如,lsbin.com 是域名。http://198.152.1。1 – 此处使用其 IP 地址 (198.152.1.1) 定位资源
  • 服务器上的端口号。例如,http://localhost:8080,其中 8080 是端口。提及端口不是强制性的。
  • 服务器目录结构中的确切位置。例如——如果用户想要访问网站的博客部分,https://www.lsbin.com就是准确的位置。
  • 一个可选的片段标识符。例如,https://www.google.com/search?ei=ARDsXO- 1EL7az7sPvbWigAo& q=URL 其中 q=URL 是用户输入的查询字符串。

你如何确定某些内容是 URI 还是 URL?

好吧,如果你想知道那个“某物”是 URI 还是 URL,你应该始终将其标记为 URI,因为所有 URL 都是 URI。

URI与URL差异比较

让我们进行一些并排比较,以便加强我们迄今为止讨论的内容,并且你不会再次因使用 URI 和 URL 错误而感到困惑!

URIURL
资源标识符资源定位器
URL超集URI 类型
句法 -scheme:[//authority]path[?query][#fragment]
其中authority = [userinfo@]host[:port]
句法 -[protocol]://www.[domain_name]:[port 80]/[path or exaction resource location]?[query]#[fragment]
方案可以是任何东西——协议、名称或规范等……该方案始终是一个协议,如 HTTP、https、ftp、LDAP 等……
URI 的主要目的是识别资源并使用位置或名称将其与其他资源区分开来主要目的是获取资源的地址或位置
示例 – contact: +1 883-345-1111,urn:isbn:1234567890示例 – https://www.lsbin.com
用于 HTML、XML 和标记库文件(如 XSLT 和 jstl)以识别资源和二进制文件。URL 仅用于查找网页

Java API 差异

我们在 Java 中实例化 URI 和 URL 对象的方式存在一些差异。URI 有一个特定的构造函数来分别给出语法的所有部分,而 URL 没有。URL 具有打开远程连接以获取指向资源的内容的方法。

URI与URL差异比较结论

URI与URL有什么区别?虽然术语 URL 更常见并且我们每天都在使用它,但人们可以在一般上下文中使用 URI,因为它是一个更广泛的术语。URL 和 URN 都是特定且有限的。URI 和 URL 之间的区别非常微妙,只有在 URI 仅指定名称时才会出现。说到位置,URI 与 URL 相同。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: