关于URI,URL,URN

URI 定义于 RFC 2396 。

URI 的基本语法: :

任意的 URI 都具有这种格式。即分为两个部分。

scheme 译为模式

可以是任意地,并由 部分决定的语法和语义,但要在 URI 允许的字符编码范围内。

absolute 的意义在于,在上下文中,不存在与绝对 URI 相关的环境变量。

为 "urn" 时,此 URI 是一个 URN 。也就是:

 "urn:" ":"

而 URL 则表明,一个通过基本获取方式形式引用认证资源,比如它们的网络位置。

如果 有一个分层的结构,那么称这个 scheme 是一个具有分层结构的模式。一般使用 "/" 用于分层的分隔符。注意,这个 "/" 是 URI 的保留分隔符,如果要在一个 URI 中使用,需要使用它的转义字符串。转义字符串由"%"引导。

由于一些文件系统中也使用 "/" 来进行层次文件的索引,所以它看起来会像一个文件路径。但实际上它只表达一个分层的命名空间。

某些 URI 的子集的 具有一个通用格式。这个通用格式有四个组件。但除了,组件外,其它的组件都可以不存在。完整的通用格式如下所示。

"://""?"

完整的 URI 称为 absolute URI 。译为,绝对 URI 。所有的 URI scheme 都具有绝对 URI :

":" (hier_part | opaque_part)

解释为一个模式名接上一个冒号,再接上一个分层部分或者不透明部分。或的意思是二选一,其意义由 | 决定。hier_part 为可分层部分,opaque_part 为不透明部分。

hier_part 可以是一个网络路径,也可以是一个绝对路径。绝对路径(absolute path)与绝对 URI (absolute URI ) 是不同的概念。

网络路径由"//"引导,由一个网络定位(authority)和一个可选绝对路径组成。

绝对路径由"/"引导。

是非"/"打头的任意非零长度的字符串。注意,无论是网络路径还是绝对路径都由 "/" 打头。这表明它是一个分层结构。

hier_part 的网络路径描述了一个通用结构。

可以是一个 server 的直接定位,也可以是一个基于注册的命名,这个命名映射一个服务器位置。比如 localhost。

直接定位利用 IP 协议定位服务器。完整形式为:

@ :

和 : 都可以不要。

例如,对于 http_URL来说,

http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]

URI Reference 。

URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]

相对的意思是,存在一个上下文变量包含一个绝对 URI 。最终的定位由这个绝对 URI 和相对 URI 一起决定。

你可能感兴趣的:(关于URI,URL,URN)