我们或许都知道 URL 是指“链接”,但如果稍微了解多一些东西,就会发现类似的词汇还有 URI 和 URN,它们很类似,因此容易搞混。这三个缩写分别是代表什么?有什么意义?本文详细解释 URI、URL 和 URN 之间的区别和联系。
URI、URL 和 URN 的定义
URI
URI (Uniform Resource Identifier,统一资源标识符),是一串用来标识一个互联网资源“身份”的字符,该“身份”或由资源的位置确定,或由资源的名称确定,或由以上两者共同确定。
举个例子,你有一个朋友 Flink,他住在深圳市盐田路 123 号房,假设现在你要找到这个朋友,我们需要用到他的名字或者他的住址(当然也可以两个都用),不管是哪种情况,你实际都是在使用 URI。
URL
URL (Uniform Resource Locator,统一资源定位符)。与 URI 类似,它也是一个字符串,但是 URL 仅仅表示了互联网资源的地址(或称之为“位置”)。比如,你只需要知道朋友 Flink 的住址,就可以通过这个地址来找到他。
URL 是目前表示互联网资源最常见的方法,下文会详细讲解 URL。
URN
URN (Uniform Resource Name,统一资源名称),顾名思义,就是互联网资源的名称。当然,它必须是在互联网上是独一无二的,因此不能使用资源的文件名。不同的互联网资源可能拥有相同的名称,通过这种方式定位资源较为困难,因此 URN 的使用较少。
关系
通过以上三个定义应该可以看出,URI 是 URL 或是 URN。也就是说,任何 URL 和 URN 都可以称作是 URI。URL、URN 是 URI 的子集。
本文地址:https://www.jeddd.com/article/distinguish-uri-url-urn.html
URL 详解
为了能使客户端从服务器上请求资源,HTTP 请求会通过 URL 被发送到服务器上。下面来讲解标准 URL 的格式。
URL 的格式中有两个必需成分——协议(连接方法)和地址(连接目标)。事实上,URL 还可以携带更多信息,不过那些都是可选的(非必需的,如端口号、路径等)。下面使用 2 个实例来解释 URL 的格式。
例1
http://www.example.com/item/show.html
http
是协议名称(scheme)。定义了访问资源的方法。常见的协议有 HTTP(超文本传输协议)、HTTPS、FTP(文件传输协议) 等。
www.example.com
是主机(host)。一般是域名或 IP 地址。通常情况下,域名会被 DNS 服务器解析为一个 IP 后才能访问目标主机。
/item/show.html
是路径(path)。这是一个可选的成分,是表示服务器资源位置的方法。比如此例是请求服务器目录下 item 目录内的 show.html 文件。另外说明,如果路径由正斜杠(/)结尾,实际上是指向了所请求目录下的默认文件(此默认文件由服务器定义),一般是诸如 index.html、index.php 等索引文件。
例2
再看一个复杂一些的例子,增加了更多可选成分:
http://www.example.com:8080/people/info.php?name=Flink&age=20
8080
是端口号(port)。这是一个可选的成分。是一个跟在域名后,以英文冒号开头,范围在 0~65535 的整数。每个协议都有默认端口号,如HTTP 是 80,HTTPS 是 443,FTP 是 21 等,因此常常省略不写。此例中为 HTTP 协议但端口号不是默认的 80,因此需显式指明端口号:8080。
?name=Flink&age=20
是Query。也是可选的,它是通过 GET 方式发送给服务器的参数。Query 由一个问号开头,紧跟一个或多个“键-值对”,多个参数之间用“&”符号隔开。如本例是希望查询名为 Flink 且年龄为 20 岁的人。
URL 中还能附带更多的信息,而且有更多的用法(如发送表单信息等),本文不做展开。
写在后面
简单总结,我们使用 URI、URL 和 URN 来表示互联网上的资源。URI 可以指定资源的地址或名称,或两者。我们通常使用的是 URL,URL 的格式包括必需成分——协议和域名,还可以包括许多可选成分如端口号、路径等。根据经验,一般情况下可以认为 URL 和 URI 两个缩写等价。
References
本文地址:https://www.jeddd.com/article/distinguish-uri-url-urn.html
我是从我朋友ZAERA的站点,看到你的,我想跟你交个朋友
欢迎!多多互访。
这下算是弄明白了。
朋友 交换链接吗
不好意思,本站暂时不考虑优惠码类型的网站
赞Q!
原来还有这种说法啊,涨知识了