URI与URL的差异以及何时使用它们

489 阅读14分钟

URI与URL:区别和何时使用它们

尽管在某些情况下,统一资源标识符(URI)和统一资源定位器(URL)可以互换使用,但它们是不一样的。

了解URI和URL之间的区别可以使你的网站开发之旅更加简单。例如,你将能够更容易地设计一个REST API,因为URI或URL将识别网络上的每个资源。

简而言之,URI和URL的主要区别在于,前者可以是一个名字,一个位置,或者两者都是,而后者只提供一个资源的位置。

在这篇文章中,我们将进一步详细解释URI和URL之间的区别以及它们的结构。此外,我们将包括URI和URL的使用案例,以及它们的优点和缺点。

  • 什么是URI
  • URI和URL的区别
    • URI类型
    • URI 语法
  • 什么是URL
    • URL的语法
  • 使用统一资源标识符(URI)的原因
  • 使用统一资源定位器(URL)的原因

什么是URI

URI或统一资源标识符是一串字符,通常通过使用名称、位置或两者来识别任何网络资源。统一资源定位器(URL)和统一资源名称(URN)是URI的两种类型。

URI和URL之间的区别

请看下面的比较表,以更好地了解URI和URL之间的主要区别。

URIURL
URI是统一资源标识符的首字母缩写。URL是统一资源定位器的首字母缩写。
URI是URN和URL的超集。URL是URI的子集。
URI通过使用名称、位置或两者来识别一个资源并将其与其他资源区分开来。URL确定了一个独特资源的网络地址或位置。
URI包含像方案、授权、路径和查询等组件。URL与URI有类似的组成部分,但它的授权由域名和端口组成。
URI的一个例子是ISBN 0-476-35557-4。URL的一个例子是https://hostinger.com。
URI通常用于XML、标签库文件,以及其他文件,如JSTL和XSTL。URL主要用于搜索互联网上的网页。
URI方案可以是一个协议,一个规范,或像HTTP、文件或数据这样的指定。URL方案是一种协议,如HTTP和HTTPS

URI类型

在找出URI和URL之间的主要区别后,让我们详细关注一下URI的两种类型。

统一资源名称(URN)

一个URN是一个持久的、与位置无关的标识符,旨在永久地识别一个资源。它意味着即使资源的数据被移到另一个地方,它仍然有效。

为了达到这个目的,一个URN使用方案来区分资源。例如,urn:isbn:0405999832 ,通过使用ISBN数字来识别一本书。

每个统一资源名称(URN)至少由三个部分组成。

  • URN--每个URN都使用前缀urn**:**scheme规范。
  • NID--指的是应该在互联网号码分配机构(IANA)注册的名称空间标识符。这可能包括字母、数字或冒号后的连字符。
  • NSS- 这是一个特定于命名空间的字符串,用于识别互联网资源。它可能包含ASCII代码、数字、标点符号和特殊字符。

统一资源定位器(URL)

一个URL指定了通过描述主要访问机制或其网络位置来获得物理位置的表示方法。它试图定位的资源可以是一个网页、一个视频、一个图像或任何在线发布的文件。

与URN不同的是,这种互联网资源标识符并不总是持久的和与位置无关的,因为它指定了通往资源的路径,而这个路径可能会随着时间的推移而改变。此外,一个URL并不遵循URN方案。

这两种标识符之间的主要区别是,URN只指定资源的名称,而URL需要访问技术或协议来检索资源的位置。

简而言之,所有的URL都是URI,但不是所有的URI都是URL。

URI的语法

统一资源标识符(URI)的语法定义了其结构,使程序能够理解它。这里是URI的一般语法。

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

现在,让我们来看看URI的语法元素。

方案

方案是URI的第一个组成部分,定义了寻址系统。在某些情况下,URI方案是一种用于访问资源的协议。同时,其他技术可能不指定任何协议。

例如,**about:**方案在网络浏览器中使用,资源内置在客户端,不与任何特定协议相关联。

它可以包含任何字母、数字、加号、句号或连字符的组合,后面跟一个冒号。最常见的URI方案包括HTTP、HTTPS、FTP、mailto和file。

例如,如果URI是file:website.com/pathtofile/intro.pdf ,方案名称是file

权威组件

这是一个可选的组件,前面是双斜线,后面是斜线、问号或哈希符号。它由三个子组件组成。

  • 用户信息--包括一个用户名和一个密码,用冒号分开。
  • 主机- 包括一个IP地址或一个注册名称。IP地址应插入括号内。
  • 端口- 用于连接服务器的协议。它是一个可选的子组件,后面有一个冒号。

例如,来自file:website.com/pathtofile/intro.pdf 的授权组件是website.com/

路径

路径包含一连串的数据段,描述资源在目录结构中的位置。它应该是空的或用斜线分开。例如,telnet://192.0.2.16:80/foo://info.example.com?fred 是一个有效的URI,其路径为空,因为没有指明具体的资源位置。

查询组件

查询是一个可选的组件,包含一个非层次数据的查询字符串。它通常是一个键=值对的字符串。这个组件的前面是一个问号。例如,如果URI是https://example.org/test/test1?search=test-question#part2 ,查询组件是search=test-question

片段组件

这个可选的组件包括一个片段标识符,提供了一个二级资源的方向。它指的是主资源的一个不同部分。一个片段前面有一个哈希符号,并以一个URI的结尾结束。

例如,来自https://example.org/test/test1?search=test-question#part2 的片段组件是part2

什么是URL

URL或统一资源定位器是一个标识符,只表示一个网页的位置。它指的是一个网页地址和它的访问可能性,如HTTP、FTP和mailto。

URL的语法

每个URL应遵循URI语法,其结构与URI相似。下面是一个URL语法的例子。

https://www.example.com/forum/questions/?tag=networking&order=newest#top

上述URL可以分为以下几个部分。

方案

URL语法的第一部分是用于检索资源的协议。一个URL方案提供了你的设备用来打开一个URL的应用程序的类型。例如,FaceTime使用URL方案**facetime://**来进行通话。其他最常用的URL方案的协议包括。

  • 超文本传输协议(HTTP)--允许用户使用超文本链接访问网页上的数据。
  • 超文本传输协议安全(HTTPS)--保护用户的浏览器和网站之间的数据传输。
  • 文件传输协议(FTP)- 用于通过网络在不同设备之间传输文件。

此外,一些URL协议使用mailto链接来识别电子邮件地址,或使用JDBC来根据用户的要求指定数据库访问。

权限

这个组件前面有一个双斜线。它包含两个子组件--一个域名和一个 端口,即 你要访问的资源。域名是资源的注册名称,如hostinger.comgoogle.com

专业提示

如果你对你的域名有一个好的想法,不要忘记在域名检查器上检查其可用性

至于端口,它是确定你在网络服务器上请求哪个网络服务的具体数字。例如,HTTP URL的端口号是80,HTTPS URL的端口号是443。然而,如果网络服务器使用标准协议,如HTTP或HTTPS,端口通常会从URL中省略。

路径

这个元素确定了一个网页、一个帖子或其他文件的具体位置,用户想在域名内访问这些文件。路径还包含任何资产文件的扩展名,如图像和文件。

然而,并不是所有的URL都显示路径元素。在许多现代网络服务器中,你可能看不到路径组件,因为它可以被省略以缩短URL。路径的一些例子是…/software/htp/index.html…/forum/question/.

查询字符串

这个字符串提供关于网络服务器上资源的数据,前面有一个问号。它通常包含一个键和值对,用安培号分开。比如说。?tag=networking&order=newest.

查询字符串存储数据,因为HTTP协议是无状态的。这意味着每个请求都是独立的,与之前的请求没有关系。因此,一旦客户端请求结束,浏览器和网络服务器之间的连接就会自动关闭。

此外,该字符串被称为URL查询参数,可用于某些目的,如网页的搜索结果。它将帮助用户从一个资源中浏览内容。例如,用户可以很容易地在一个网上商店找到产品的信息。

片段标识符

片段标识符或锚通常出现在URL的末尾,由一个哈希符号引入。它是一个可选的组件,用于引导网络浏览器到一个二级资源。它指的是网页中的一个特定部分。

在一个HTML页面中,浏览器将跳转到由片段标记的特定部分。

例如,如果URL是https://example.com/results.html#intro ,它将直接跳到名为results.html的页面上的标记介绍

使用统一资源标识符(URI)的原因

使用URI有助于创建使用资源的标准规则,包括访问、更新、查找或下载资源。它提供了一个简单的方法来识别互联网资源。

以下是URI的三个使用案例。

  • 视听作品- ISAN是一个序列码,用于识别视听作品和版本,如电影、电视节目或纪录片。通过使用urn**:**方案,URI可以在没有协议或访问方式的情况下识别ISAN。例如,urn:isan:0000-0000-2CEA-0000-1-0000-0000-Y ,它指的是2002年的蜘蛛侠电影。它用一个视听号码来识别一个资源,而不告诉用户在哪里可以找到它。
  • 电话号码-- URI可以使用一个拨号字符串来识别一个资源,它有一个网络终端点(NTP),包含了路由呼叫所需的信息。**tel:**方案只是一个全球唯一标识符(GUID),并不指任何物理设备。例如,tel:+1-816-555-6666 描述一个GUID是美国的标准电话号码。
  • 远程访问- Telnet是一个网络协议,URI使用它来指定通过互联网访问远程计算机或主机。例如,telnet://192.0.2.16:80/. Telnet通常用于远程测试或排除网络或邮件服务器的故障。

现在,让我们看看URI有什么好处和坏处。

优点

  • 毫不含糊的标识符--URI可以通过提供独特的方案来识别资源,并在语义网上将其区分开来,从而防止歧义。它有助于资源描述框架(RDF)为用户解释信息。因此,网络文件和其他资源之间不会发生混淆。
  • 统一性--URI标识了资源的名称和位置。另外,不同类型的资源标识符可以在同一背景下使用。例如,一个URL和一个URI可以指代同一个资源。统一性指的是应该遵循的URI的一般语法。
  • 识别抽象和物理资源- URI方案可以指定任何资源,包括现实世界的对象,如电话号码、地点、书籍和人。资源不一定限于可通过互联网访问的网页。
  • 多个URI可以与一个资源相连接--例如,http://www.example.com/abc/2022/Q1 上的数据可能也可以在http://www.example.com/abc/Q12022 。这将使客户-服务器更容易引用一个资源。

缺点

  • URI应该是永久性的--一旦你创建了一个URI,改变它就会损害你网站的声誉。即使你仍然可以重新编码破损的URL,但这需要时间和精力。
  • 不兼容所有的浏览器- 虽然URI可以在许多流行的浏览器中使用,如谷歌浏览器和Mozilla Firefox,但一些旧版本的浏览器,如Internet Explorer 5,6,7,或Safari 5和6不支持URI方案。

使用统一资源定位器(URL)的原因

与URI一样,URL也是用来识别资源的。两者在目的和结构上有细微的差别。请记住,大多数URL提供了一个协议。以下是URL的一些使用情况。

  • 指向一个电子邮件地址--URL可以通过使用**mailto:**方案指定一个电子邮件地址。它提供了一个超链接,可以直接从一个HTML页面发送电子邮件。比如说。mailto:abc@example.com.
  • 检索网页- 最常见的URL指的是一个网页地址。它包含一个协议、一个域名和一个路径。它也被称为一个绝对的URL。例如,https://www.example.com/news/business/ ,告诉你到资源的地址和它的目录。
  • 重定向资源- 你可以使用一个URL将一个旧的资源重定向到一个新的位置。它通常用于移动一个网页。例如,如果你把你的网站地址从https://www.blog.example.com 改为https://www.example.com/blog ,你可以实施一个301重定向。这样做将防止访问者得到各种HTTP状态代码,如404错误页面。
  • 指向一个内部页面--URL可以在没有协议和域名的情况下显示,但只表示一个路径。它用于链接同一域内的特定文件,可称为相对URL。例如,如果URL是https://www.example.com/news/business/ ,相对URL将是**/news/business/**。

每个URL都由几个部分组成,这将影响你的网站的安全和搜索引擎优化(SEO)。让我们来了解一下它的优点和缺点。

优点

  • 增强用户体验- 一个结构良好的URL将帮助用户了解他们正在访问什么页面。例如,如果网站www.example.com,其网页的标题标签是 "圣诞节巧克力布丁食谱",你的URL可以http://example.com/recipes/chocolate-pudding ,以清楚地描述该页面的内容。
  • 提高网站的排名--除了域名的权威性,URL中的关键词对你的网站来说也是一个小的排名因素。它可能会影响搜索引擎结果页面(SERP)对特定页面或资源相关性的分析。
  • 保护你的网站- 使用HTTPS URLs可以比HTTP更安全地保护你的网站和访问者的隐私。这是因为HTTPS带有安全套接字层(SSL)证书,在网络服务器和网络浏览器之间提供数据传输的加密连接。

缺点

  • 安全威胁- 创建一个缩短的URL也会危及你的网站的声誉。许多黑客使用URL缩短器,如Bitly、owl.ly、AdF.ly和TinyURL,来向用户隐藏他们的恶意。缩短URL的一个例子是http://bitly.is/example ,在这里你看不到一个网站的域名。
  • 内容窃取- 使用相对的URL可能有内容窃取的风险,因为人们不需要重写任何内部链接。他们可以很容易地复制你的网页,并通过使用网络搜刮器将其放在一个新的域名上。
  • 死链接- 这可能发生在你使用URL缩短服务的时候。这是因为一项服务可能会瘫痪,甚至停产,使你的链接无法工作。

专业提示

好的URL应该是简单、明确和简洁的。这样一来,用户就可以了解到对该页面的期待。

结论

了解URI或URL之间的区别和它们的用法,对每个网站管理员来说都是至关重要的。例如,使用URI或URL的可预测和分层结构来构建REST API可以提高REST API的性能。

URI是统一资源标识符的缩写,是一个字符串,通常通过名称、位置或两者在互联网上识别资源。此外,URI可以区分文件和其他资源的类型。

另一方面,URL或统一资源定位器是一串字符,显示资源的地址如何在网页上 访问它。由于URL是URI的一部分,它们遵循类似的结构。

我们希望这篇文章能帮助你了解URI和URL的区别,以及何时使用它们。最后,如果你有任何进一步的问题,欢迎在下面的评论部分分享他们