URI、URL、URN
URL 统一资源定位符
URL 代表着是统一资源定位符(Uniform Resource Locator)
通俗点说:URL 无非就是一个给定的独特资源在 Web 上的地址。
- 理论上说,每个有效的 URL 都指向一个唯一的资源;
- 这个资源可以是一个 HTML 页面,一个 CSS 文档,一幅图像,等等;
URL 的格式
统一资源定位符(英语:Uniform Resource Locator,缩写:URL,或称统一资源定位器、定位地址、URL 地址)俗称网页地址,简称网址,是因特网上标准的资源的地址(Address),如同在网络上的门牌。它最初是由 蒂姆·伯纳斯 - 李 发明用来作为 万维网 的地址,现在它已经被 万维网联盟 编制为因特网标准RFC 1738。
在互联网的历史上,统一资源定位符的发明是一个非常基础的步骤。统一资源定位符的语法是一般的,可扩展的,它使用 美国信息交换标准代码 的一部分来表示因特网的地址。统一资源定位符的开始,一般会标志着一个计算机网络所使用的网络协议。
统一资源定位符的标准格式:[协议类型]://[服务器地址]:[端口号]/[资源层级 UNIX 文件路径][文件名]?[查询]#[片段ID]
统一资源定位符的完整格式:[协议类型]://[访问资源需要的凭证信息]@[服务器地址]:[端口号]/[资源层级 UNIX 文件路径][文件名]?[查询]#[片段ID]
其中[访问凭证信息]、[端口号]、[查询]、[片段 ID]都属于选填项。
URI 统一资源标志符
统一资源标志符(英语:Uniform Resource Identifier,缩写:URI)在电脑术语中是用于标志某一互联网资源名称的字符串。
该种标志允许用户对网络中(一般指万维网)的资源通过特定的协议进行交互操作。URI 的最常见的形式是统一资源定位符(URL),经常指定为非正式的网址。更罕见的用法是统一资源名称(URN),其目的是通过提供一种途径。用于在特定的名字空间资源的标志,以补充网址。
URI 文法由 URI 协议名(例如 http、ftp、mailto、file),一个冒号,和协议对应的内容所构成。特定的协议定义了协议内容的语法和语义,而所有的协议都必须遵循一定的 URI 文法通用规则,亦即为某些专门目的保留部分特殊字符。URI 文法同时也就各种原因对协议内容加以其他的限制,例如,保证各种分层协议之间的协同性。百分号编码也为 URI 提供附加信息。
通用 URI 的格式:[协议名]://[用户名]:[密码]@[主机名]:[端口]/[路径]?[查询参数]#[片段ID]
下图展示了两个 URI 例子及它们的组成部分。
hierarchical part
┌───────────────────┴─────────────────────┐
authority path
┌───────────────┴───────────────┐┌───┴────┐
abc://username:password@example.com:123/path/data?key=value&key2=value2#fragid1
└┬┘ └───────┬───────┘ └────┬────┘ └┬┘ └─────────┬─────────┘ └──┬──┘
scheme user information host port query fragment
urn:example:mammal:monotreme:echidna
└┬┘ └──────────────┬───────────────┘
scheme path
# scheme - 定义因特网服务的类型。最常见的类型是 http/https
# host - 定义域主机(http 的默认主机是 www)
# domain - 定义因特网域名,比如 baidu.com
# :port - 定义主机上的端口号(http 的默认端口号是 80)
# path - 定义服务器上的路径(如果省略,则文档必须位于网站的根目录中)。
URN 统一资源名称
统一资源名称(英语:Uniform Resource Name,缩写:URN)是统一资源标识(URI)的历史名字,它使用 urn: 作为 URI scheme。
1997 年的 RFC 2141 定义了 URN,期望为资源提供持久的、位置无关的标识方式,并允许简单地将多个命名空间映射到单个 URN 命名空间。这样一个 URI 的存在并不意味着被标识的资源一定是可用的,但它仍然需要保持全局唯一和持久,即使资源已经不存在了或变得不可用。
自从 2005 年 RFC 3986 发布,这一术语的使用已被限制更少的"URI"取代。这是 W3C 和 IETF 联合组成的工作组所提议的。URN 和 URL 都已经是 URI 的一种,而且特定情况下 URI 可能同时拥有名字(URN)和位置(URL)。
在 1990 年,URN 作为一个元数据框架,原本被期望和 URL、URC(统一资源特征)一起组成一个第三方互联网信息架构。然而 URC 一直停留在理论阶段,随之更晚出现的其他技术(例如资源描述框架)取代了它们。
URL 和 URI 的区别
URL 和 URI 的区别:
- URI = Uniform Resource Identifier 统一资源标志符,用于标识 Web 技术使用的逻辑或物理资源。
- URL = Uniform Resource Locator 统一资源定位符,俗称网络地址,相当于网络中的门牌号。
URI 在某一个规则下能把一个资源独一无二的识别出来。
- URL 作为一个网络 Web 资源的地址,可以唯一将一个资源识别出来,所以 URL 是一个 URI;
- 所以 URL 是 URI 的一个子集;
- 但是 URI 并不一定是 URL
locators are also identifiers, so every URL is also a URI, but there are URIs which are not URLs.
URI 可被视为定位符(URL),名称(URN)或两者兼备。统一资源名(URN)如同一个人的名称,而统一资源定位符(URL)代表一个人的住址。换言之,URN 定义某事物的身份,而 URL 提供查找该事物的方法。
用于标志唯一书目的 ISBN 系统是一个典型的 URN 使用范例。例如,ISBN 0-486-27557-4 无二义性地标志出莎士比亚的戏剧《罗密欧与朱丽叶》的某一特定版本。为获得该资源并阅读该书,人们需要它的位置,也就是一个 URL 地址。在类 Unix 操作系统中,一个典型的 URL 地址可能是一个文件目录,例如file:///home/username/RomeoAndJuliet.pdf。该 URL 标志出存储于本地硬盘中的电子书文件。因此,URL 和 URN 有着互补的作用。
URL 是一种 URI,它标志一个互联网资源,并指定对其进行操作或获取该资源的方法。可能通过对主要访问手段的描述,也可能通过网络"位置"进行标志。例如,http://www.wikipedia.org 这个 URL,标志一个特定资源(首页)并表示该资源的某种形式(例如以编码字符表示的,首页的 HTML 代码)是可以通过 HTTP 协议从 www.wikipedia.org 这个网络主机获得的。URN 是基于某名字空间通过名称指定资源的 URI。人们可以通过 URN 来指出某个资源,而无需指出其位置和获得方式。资源无需是基于互联网的。例如,URN urn:ISBN 0-395-36341-1 指定标志系统(即国际标准书号 ISBN)和某资源在该系统中的唯一表示的 URI。它可以允许人们在不指出其位置和获得方式的情况下谈论这本书。
技术刊物,特别是 IETF 和 W3C 发布的标准中,通常不再使用 "URL" 这一术语,因为很少需要区别 URL 和 URI。但是,在非技术文献和万维网软件中,URL 这一术语仍被广泛使用。此外,术语"网址"(没有正式定义)在非技术文献中时常作为 URL 或 URI 的同义词出现,虽然往往其指代的只是"http"和"https"协议。