URI:统一资源标识符Uniform Resource
Identifier
,或URI)是一个用于标识某一互联网资源名称的字符串。该种标识允许用户对网络中(一般指万维网)的资源通过特定的协议进行交互操作。URI由包括确定语法和相关协议的方案所定义。

URI可被视为定位符(URL),名称(URN)或两者兼备。统一资源名(URN)如同一个人的名称,而统一资源定位符(URL)代表一个人的住址。换言之,URN定义某事物的身份,而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。它可以允许人们在不指出其位置和获得方式的情况下谈论这本书。

标记语言中URI引用的使用

在HTML中,img元素的src属性值是URI引用,a或link元素的href属性值亦如是。

在XML中,在一个DTD中的SYSTEM关键字之后出现的系统描述符是一个无片段的URI引用。

在XSLT中,xsl:import元素/指令的href属性值是一个URI引用,document()函数的第一个参数与之相仿。

绝对URI的例子

http://example.org/absolute/URI/with/absolute/path/to/resource.txt

ftp://example.org/resource.txt

urn:issn:1535-3613

URI引用的例子

http://en.wikipedia.org/wiki/URI#Examples_of_URI_references
("http" 指定协议名, "en.wikipedia.org"是“典据”, "/wiki/URI"是指向英文维基页面的“路径”,而"#Examples_of_URI_references"是指向英文维基页面相应片段的“片段”。)

http://example.org/absolute/URI/with/absolute/path/to/resource.txt

//example.org/scheme-relative/URI/with/absolute/path/to/resource.txt

/relative/URI/with/absolute/path/to/resource.txt

relative/path/to/resource.txt

../../../resource.txt

./resource.txt#frag01

resource.txt

#frag01

(空字符串)

URI解析

“解析”一个URI意味着将一个相对URI引用转换为绝对形式,或者通过尝试获取一个可解引URI或一个URI引用所代表的资源来解引用这个URI。文档处理软件的“解析”部分通常同时提供这两种功能。

一个URI引用可以是一个同文档引用:一个指向包含URI引用自身的文档的引用。文档处理软件可有效地使用其当前的文档资源来完成对于同文档引用的解析而不需要重新取得一份资源。这只是一个建议——文档处理软件自然可以选用另外的方法来决定是否获取新资源。

当前截至2009
年的URI规范,RFC 3986,将一个同文档引用的URI定义为“当解析为绝对形式时与引用的基文档地址完全一致的文档”。一般来说,基文档URI就是包含引用的文档的URI。例如,XSLT
1.0包括document()函数以实现这一功能。RFC 3986同时也正式定义了URI等效性,一个可以被[谁?]用来判断一个与基URI不同的URI是否表示同一个资源,并因此可以被认为是同文档引用。

RFC 2396给出了一个不同的判断同文档引用的方法;RFC 3986替代了RFC 2396,但RFC 2396仍旧作为许多规范和实现的基础而存在。这一规范将一个空字符串或仅包括#字符和可选的片段标识符组成的URI引用定义为同文档引用。

最新文章

  1. CSS 的overflowhidden 属性详细解释
  2. .NET Framework 框架的一些简单介绍
  3. Discuz!X2大附件上传插件-Xproer.HttpUploader6
  4. [ASE]项目介绍及项目跟进——TANK BATTLE·INFINITE
  5. oracle中的数据对象
  6. little skill---ping
  7. SimpleDateFormat
  8. MySQL 字段常用操作 添加,修改,删除,调整字段顺序
  9. 关于window.history.back()后退问题
  10. POJ2599+POJ2082【最大矩形面积】
  11. 用Lua定制Redis命令
  12. Jason Wang:记录自己所想所得(第一次作业)
  13. C# 6.0:新的Dictionary Initializer
  14. WPF DevExpress ChartControl用法
  15. 史上最全python面试题详解(三)(附带详细答案(关注、持续更新))
  16. BZOJ.3784.树上的路径(点分治 贪心 堆)
  17. WPF 使用RPC调用其他进程
  18. Windows:添加、删除和修改静态路由
  19. linux环境中安装iotop命令,解决-bash: iotop: command not found问题
  20. 搭建GlusterFS文件系统

热门文章

  1. mongoDB安装和启动
  2. AJAX 向后台发送带 List 集合的对象
  3. 讨论过后而引发对EF 6.x和EF Core查询缓存的思考
  4. centos 6安装 H3C iNode 上网客户端
  5. 利用Python进行数据分析——Ipython
  6. Node.js Net 模块
  7. 【java集合系列】--- LinkedList
  8. [OpenCV] GpuMat and Mat, compare cvtColor perforemence
  9. How to code like a hacker
  10. VMware中的桥接模式、NAT(网络地址转换模式)、Host-only(主机模式):转自:http://blog.chinaunix.net/uid-11798538-id-3061551.html