传播学百科网 >>所属分类 >> 新媒介   

统一资源标识符URI

标签: 技术 URI URN 统一资源标识符 通用格式 URL

顶[0] 发表评论(1) 编辑词条


 

目录

[显示全部]

简介编辑本段回目录


统一资源标识符(Uniform Resource Identifiers, URI)为标识 Web 中的资源定义了一种标准系统,这些资源包括 HTML 页面、XML 文档、图像、多媒体文件等等。由 RFC 3986: Uniform Resource Identifier Generic Syntax [IETF RFC] 管理。URI 是对人们较为熟悉的 URL 的扩展,后者用于 Web 浏览器及类似程序。所有 URL 都是 URI,但是 URI 还包括了由 RFC 2141: Uniform Resource Names [IETF RFC] 管理的 URN。URN 通过名称而不是位置对 Web 资源进行标识。URI 通常用作 XML 核心规范中的系统标识符,指定引用自某个 XML 文档中的具体资源,例如一个文件。在 XML 中,绝对 URI 和相对 URI 的概念非常重要。假设在浏览 Web 时,将当前的 Web 页面作为起点页面请求下一个页面,绝对 URI 标识相同的新资源与起点页面无关,而相对 URI 需要根据起点页面标识新资源。

统一资源标识符 (Uniform Resource Identifier, URI)

统一资源标识符URI-简介

  用于唯一地标识元素或属性的数字或名称。URI 包括统一资源名称 (URN) 和统一资源定位器 (URL)。
  URI 是在 Internet 上定位资源的常规方案,它的着重点在于资源,而不是位置。理论上,URI 可以查找镜像文档的最近的副本,或者定位从一个站点移动到另一个站点的文档。
  尽管预计 URN 在将来会变得更通用,但今天谈到 XML 时,URI 往往是指 URL。

URI 标准编辑本段回目录

RFC3986,即“Uniform Resource Identifier (URI):Generic Syntax”,是一个 Internet Standard。 Request for Comments (RFC) 系列是著名的档案式文档系列,该系列构成了 Internet Engineering Task Force (IETF) 标准过程的主干。 在数以千计的 RFC 中,只有很少的部分,比如 TCP (RFC793) 以及 Internet Mail 格式 (RFC821) 和协议 (RFC822), 提高了整个 Internet Standard 的发展水平。 RFC3986 在 2005 年 1 月也提高了这个水平。
IETF 达成共识,共同管理该方案。Official IANA Registry of URI Schemes中包括一些大家所熟悉的方案,如 http、 https 和 mailto

URI的通用格式编辑本段回目录


URI的通用格式为:
  协议: [ // ] [ [ 用户名 [ :密码 ]  ] 主机名 [ :端口号 ] ] [ /资源路径 ][
其中协议指的是访问资源使用的协议名称,常见的有http、ftp、mailto、file等。协议和主机名称或IP地址间使用半角冒号(:)连接,包含资源路径的冒号后还有两个半角斜线(//)。
主机名称或IP地址是用于在网络中查找服务器并用于和它连接的(TCP协议要求建立连接,但UDP协议不要求,但大部分协议是采用TCP协议的),来获取资源。有时服务器采用了非使用协议的默认端口,这样就需要在主机名称后加上端口号,并使用半角冒号连接,但这不是必需的。因为在大部分情况下,服务器都会采用协议默认的端口号。连接的用户名和密码并非在所有的情况下都要求,且要求用户名也不一定要求密码。通常用户名和密码及主机名称之间使用半角@符连接,而用户名和密码之间则使用半角冒号。常见的要求用户名的是用mailto协议来发送邮件,必须要带用户名,而ftp通常情况下也要带用户名及密码,即使为空,通常客户端也会发送匿名和一个邮箱地址当作用户名和密码。在file协议下访问的通常是本机的资源,在这种情况下不存在主机名称或IP地址,而是直接由协议连接本地地址构成。
资源路径即资源存放在服务器或本地的计算机的物理或虚拟位置。

 

国际化的资源标志符编辑本段回目录


HTML 中的 href 属性采用了 URI 引用,这样讲有些过于简单。URI 和 URI 引用都是从有限的 ASCII 字符集合中得出的,并且 HTML 比它们更加国际化。事实上,对遵循 RFC3986 的注释的请求是符合 RFC3987 标准,即 Internationalized Resource Identifiers (IRI) 标准。此规范在 IETF 标准化过程中没有它的前辈走的远,但是技术本身已是相当成熟,并被广泛部署。除了能够使用所有 Unicode 字符,而不是仅仅能够使用 ASCII 字符之外,IRI 和 URI 是完全一样的。像 URI一样,每个 IRI 都有一个相应的编码,以防需要在只接受 URI 的协议(比如 HTTP)中使用 IRI。

用 xml:base 重写基本 URI编辑本段回目录


通常, URI 引用与在哪种文档中发现它有关。如果使用基本 URI http://exslt.org/math/min/math.min.template.xsl 查看一个文档,并看到了一个 URI 引用 ../../random/random.xml,那么引用将扩展为 http://exslt.org/random/random.xml。在 HTML 中,您可以把一个 base 元素放在文档顶端来重写基本 URI。XML Base 规范在 XML 中也提供了同样的功能。
考虑一个既可以用 file:/my/doc 访问也可以用 http://my.domain/doc 访问的文档。通常,当通过文件系统访问文档时,您可能希望这些引用像 #part2 那样扩展为 file:/my/doc#part2;而通过 HTTP 访问文档时,您可能希望 #part2 扩展为 http://my.domain/doc#part2。但是在 Resource Description Framework (RDF) 模式中,为了使一些组件正常工作,展开的形式必须保持不变。 XML Base 使这种扩展变得容易(参见清单 1)。

清单 1. RDF 中的展开形式
 
    
<rdf:RDF
  xmlns="&owl;"
  xmlns:owl="&owl;"
  xml:base="http://www.w3.org/2002/07/owl"
  xmlns:rdf="&rdf;"
  xmlns:rdfs="&rdfs;"
>
...
    <Class rdf:about="#Nothing"/> 

标识字符串中的URI的方法编辑本段回目录


使用一个简单的正则表达式来标识字符串中的统一资源标识符 (URI)。为了减少误报(文本被错误标识为 URI)次数,已假定了一个具体的 URI 格式。这意味着将会存在一些有效 URI 未被标识出的漏报情况。

 示例
URI 的某个具体格式可与正则表达式 ([^=":\s]+:)?//[^\s"]+ 匹配,这意味着:

出现了以下任意字符:

一个或多个字符(不是 =、"、: 或空格字符)的集合,后跟

: 字符,后跟

字符串 //,后跟

一个或多个字符(不是引号或空格字符)的集合。

Regex 对象是使用正则表达式初始化的。

Regex 对象的 Matches 方法返回一个 MatchCollection 对象,该对象包含有关正则表达式所匹配输入字符串的所有部分的信息。

    ''' <summary>Identifies URIs in text.</summary>
    ''' <param name="text">Text to parse.</param>
    ''' <remarks>Displays each URI in the input text.</remarks>
    Sub IdentifyURIs(ByVal text As String)
        Dim uriRegex As New Regex("([^="":\s]+:)?//[^\s""]+")
        Dim output As String = ""
        For Each m As Match In uriRegex.Matches(text)
            output &= m.Value & vbCrLf
        Next
        MsgBox(output)
    End Sub此示例要求使用 Imports 语句来导入 System.Text.RegularExpressions 命名空间。有关更多信息,请参见 Imports 语句(.NET 命名空间和类型)。

 

URI、URL和URN之间的区别与联系编辑本段回目录


  URI:Uniform Resource Identifier,统一资源标识符;
  URL:Uniform Resource Locator,统一资源定位符;
  URN:Uniform Resource Name,统一资源名称。
  其中,URL,URN是URI的子集。
  Web上地址的基本形式是URI,它代表统一资源标识符。有两种形式:
  URL:目前URI的最普遍形式就是无处不在的URL或统一资源定位器。
  URN:URL的一种更新形式,统一资源名称(URN, Uniform Resource Name)不依赖于位置,并且有可能减少失效连接的个数。但是其流行还需假以时日,因为它需要更精密软件的支持。
  URI是以某种统一的(标准化的)方式标识资源的简单字符串。
  典型情况下,这种字符串以scheme(命名URI的名字空间的标识符——一组相关的名称)开头,语法如下:
  [scheme:] scheme-specific-part
  URI以scheme和冒号开头。Scheme用大写/小写字母开头,后面为空或者跟着更多的大写/小写字母、数字、加号、减号和点号。冒号把scheme与scheme-specific-part分开了,并且scheme-specific-part的语法和语义(意思)由URI的名字空间决定。如下面的例子:
  http://www.cnn.com/,其中http是scheme,//www.cnn.com是 scheme-specific-part,并且它的scheme与scheme-specific-part被冒号分开了。
  URI有绝对和相对之分,绝对的URI指以scheme(后面跟着冒号)开头的URI。前面提到的http://www.cnn.com/就是绝对的URI的一个例子,其它的例子还有mailto:jeff@javajeff.comnews:comp.lang.java.help和xyz://whatever。你可以把绝对的URI看作是以某种方式引用某种资源,而这种方式对标识符出现的环境没有依赖。如果使用文件系统作类比,绝对的URI类似于从根目录开始的某个文件的径。
  与绝对的URI不同的,相对的URI不是以scheme(后面跟着冒号)开始的URI。 它的一个例子是articles/articles.html。你可以把相对的URI看作是以某种方式引用某种资源,而这种方式依赖于标识符出现的环境。如果用文件系统作类比,相对的URI类似于从当前目录开始的文件路径。
  URL是Uniform Resource Location的缩写,译为"统一资源定位符"。通俗地说,URL是Internet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的Mosaic。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。
  目前最大的缺点是当信息资源的存放地点发生变化时,必须对URL作相应的改变。因此人们正在研究新的信息资源表示方法,例如:URI(Universal Resource Identifier)即"通用资源标识"(参见RFC 1630)、URN(Uniform Resource Name)即"统一资源名"和URC(Uniform Resource Citation)即"统一资源引用符"等。
URI目前还处在进一步的研究当中。研究的方向就是弥补URL目前存在的缺点。

扩展阅读编辑本段回目录

统一资源标识符(URI)编码方法 http://hi.baidu.com/heroman/blog/item/829c91ca34d39487c91768c4.html

统一资源标识符(Uniform Resource Identifiers, URI)和国际化资源标识符(Internationalized Resource Identifiers, IRI)http://www.ibm.com/developerworks/cn/xml/standards/x-urispec.html

Flex 将字符串编码为有效的 URI(统一资源标识符)http://liguoliang.com/2010/01/1098/

附件列表


→如果您认为本词条还有待完善,请 编辑词条

上一篇google浏览器

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
0

收藏到:  

词条信息

莫卡3171
莫卡3171
书童
最近编辑者 发短消息   

相关词条