当前位置: 首页 > 科技观察

你知道URL、URI和URN的区别吗?

时间:2023-03-20 11:14:58 科技观察

这是一场经典的技术辩论,许多人问自己:URL、URI和很可能是URN之间有什么区别。虽然,现在我们简单的把URN和URL都认为是URI,但是严格来说URI可以进一步分为URL,URN,或者是两者的结合,所以理解这三者的区别会非常有趣和有趣。受益匪浅。如果你碰巧在某个地方遇到过这些,你至少应该知道它们的意思。我认为对于普通人来说,不理解这三个首字母缩略词之间的技术差异以及它们各自的含义并不是问题。但是,如果你是一名计算机科学家、Web开发人员、系统管理员,或者更一般地说,如果你从事IT领域的工作,那么了解这些知识是非常有必要的。本文旨在清晰地解释URL、URI和URN之间的区别,帮助您快速了解这些必要的知识。你是否也对这个话题感到困惑?所以我们开始吧!这三个首字母缩略词的起源是TimBerners-Lee在名为RFC3986的文档中定义的Internet:统一资源标识符(URI):通用语法标准跟踪协议。引文:统一资源标识符(URI)提供了一种简单、可扩展的资源识别方法。URI规范中的语义和句法来源于万维网全球信息积极引入的概念,从1990年开始使用这种标识符数据,被描述为“万维网中的统一资源描述符”。TimBerners-Lee是万维网的领导者,同时也是万维网联盟(W3C)的负责人。照片由PaulClarke在CCBY-SA4.0许可下拍摄。区别首先我们必须澄清一件事:URL和URN都是URI的子集。也就是说,URL和URN都是URI,但URI不一定是URL或URN。为了更好地理解这个概念,请看下图。通过以下示例(取自维基百科)可以很好地理解URN和URL之间的区别。如果是一个人,我们会想到他的名字和地址。URL类似于地址,因为它告诉您找到某人的方法(在本例中,是通过街道地址找到的人)。请注意,上面的定义也是一个URI。相比之下,我们可以把一个人的名字想象成一个URN;因此URN可用于唯一标识实体。更准确地说,一个人的名字的例子不是很合适,因为可能有相同名字(和相同姓氏)的实例。比较中肯的是图书的ISBN号和产品在系统中的序列号。虽然它没有告诉您如何或在哪里找到目标,但您有足够的信息来检索它。引用自这篇文章:所有URN都遵循以下语法(引号内的短语是必需的):::="urn:"":"其中NID是命名空间标识符,NSS是特定字符串标识命名空间。理解这三者的一个例子让我们看看上面的概念是如何应用到与我们有关的互联网上的。再次引用维基百科,这些引文给出的解释比上面人类地址的例子更加专业:主要访问机制和网络位置。关于URN:URN是URI的一种,用特定命名空间的名称标识资源。使用URN讨论资源,而无需知道它们在网络上的位置或如何访问它们。现在,如果您在Web上四处看看,您会发现很多示例,而且它比其他任何东西都更令人困惑。我只是举个例子,很简单明了的告诉你互联网上URI、URL、URN的区别。让我们看看下面这个虚构的例子。这是一个URI:http://bitpoetry.io/posts/hello.html#intro我们首先分析http://作为定义如何访问资源的方式。另外,bitpoetry.io/posts/hello.html是资源存放位置,所以,在这个例子中,#intro就是资源。URL是URI的子集,告诉我们如何访问网络上的某个位置。在我们的例子中,URL应该是这样的:http://bitpoetry.io/posts/hello.htmlURN是URI的子集,包括名称(在给定的命名空间内),但不包括访问方法,如下提醒:bitpoetry.io/posts/hello.html#intro就是这样。现在您应该能够区分URL和URN。如果您忘记了本文的内容,请至少记住一件事:URI可以分类为URL、URN或两者的组合。如果您一直在使用术语URI,就不会出错。本文已更新以更正一些错误。如果您发现新的错误,无论是技术上的还是语法上的,请不要犹豫,让我们知道!