URI和URL区别

2.1.1 什么是URI

Web上可用的每种资源 - HTML文档、图像、视频片断、程序等 - 由一个经过通用资源标志符(Universal Resource Identifier, 简称"URI")进行定位。

URI通常由三部分组成:

访问资源的命名机制。
存放资源的主机名。
资源自身的名称,由路径表示。
考虑下面的URI,它表示了当前的HTML 4.0规范:

http://www.webmonkey.com.cn/html/html40/
这个URI是这样的:这是一个可经过HTTP协议访问的资源,位于主机www.webmonkey.com.cn上,经过路径“/html/html40”访问。在HTML文档中其它资源包括"mailto"(收发email)和"ftp"(FTP访问)。

这是URI的另外一个例子,指向一个用户的邮箱:
<A href="mailto:joe@someplace.com">Joe Cool</A>
注:大多数读者可能熟悉"URL",而不是URI。URL是URI命名机制的一个子集。

2.1.2 片断标志符

有的URI指向一个资源的内部。 这种URI以"#"结束,并跟着一个anchor标志符(称为片断标志符)。例如,下面是一个指向section_2的URI:
http://somesite.com/html/top.html#section_2

2.1.3 相对URI

相对URI 不包含任何命名规范信息。它的路径一般指同一台机器上的资源。相对URI可能含有相对路径(如,“..”表示上一层路径),还可能包含片断标志符。

为了说明相对URI,假设咱们有一个基本的URI
"http://www.acme.com/support/intro.html"。下面的连接中使用了相对URI:
<A href="suppliers.html">Suppliers</A>
它扩展成彻底的URI就是 "http://www.acme.com/support/suppliers.html",
下面是一个图像的相对URI:
<IMG src="../icons/logo.gif" alt="logo">
它扩展成彻底的URI就是 "http://www.acme.com/icons/logo.gif"。
在HTML中,URI被用来:

连接到另外一个文档或资源(参看A和LINK元素)。
连接到一个外部样式表或脚本(参看LINK和SCRIPT元素)。
在页内包含图像、对象或applet(参看IMAG、OBJECT、APPLET和INPUT元素)。
创建图像映射(参看MAP和AREA元素)。
提交一个表单(参看FORM)。
创建一个框架文档(参看FRAME和IFRAME元素)。
引用一个外部参考(参看Q、BLOCKQUOTE, INS和DEL元素)。
指向一个描述文档的metadata(参看HEAD元素)。 html

========================================================================== URL 统一资源定位符   
URI   统一资源标示符   
二者是不同的,URI是一个更普遍的概念,如URL,URN都是一种URI,   能够说URI是抽象的,而具体使用URL,URN来定位。 java

 

  URI、URL和URN是识别、定位和命名互联网上的资源的标准途径; URL,URN是URI的子集. web

     URI不能定位或读取/写入资源。这是统一的资源定位器(URL)的任务。URL是一种URI,可是它的大纲组件是已知的网络协议(简称协议),而且它把URI组件与某种协议处理程序(一种资源定位器和根据协议创建的约束规则与资源通信的读/写机制)。 网络

  URI通常不能为资源提供持久不便的名称。这是统一的资源命名(URN)的任务。URN也是一种URI,可是全球惟一的、持久不便的,即便资源不在存在或再也不使用。 app

      web上地址的基本形式是URI,它表明统一资源标识符。有两种形式:
      URL:目前URI的最广泛形式就是无处不在的URL或统一资源定位器。
      URN:URL的一种更新形式,统一资源名称(URN, Uniform Resource Name)不依赖于位置,而且有可能减小失效链接的个数。可是其流行还需假以时日,由于它须要更精密软件的支持。 框架

体系中的URI、URL和URN是彼此关联的。URI的范畴位于体系的顶层,URL和URN的范畴位于体系的底层。这种排列显示URL和URN都是URI的子范畴, URI表示的是统一的资源标识,它是以某种统一的(标准化的)方式标识资源的简单字符串。典型状况下,这种字符串以scheme(命名URI的名字空间的标识符--一组相关的名称)开头,语法以下: orm

[scheme:] scheme-specific-part 视频

URI以scheme和冒号开头。Scheme用大写/小写字母开头,后面为空或者跟着更多的大写/小写字母、数字、加号、减号和点号。冒号把scheme与scheme-specific-part分开了,而且scheme-specific-part的语法和语义(意思)由URI的名字空间决定。   htm

其中一个例子是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相似于从当前目录开始的文件路径。