URI、URL、URN区别和JAVA中对应类_第1页
URI、URL、URN区别和JAVA中对应类_第2页
URI、URL、URN区别和JAVA中对应类_第3页
URI、URL、URN区别和JAVA中对应类_第4页
URI、URL、URN区别和JAVA中对应类_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、URI (Universal Resource Identifier统一的资源标识):它是以某种统一的(标准化的) 方式标识资源的简单字符串。Web上可用的每种资源-HTML文档、图像、视频片段、程 序等-由一个通过通用资源标志符(Universal Resource Identifier,简称URI)进行定位。URI 般由三部分组成:访问资源的命名机制。存放资源的主机名。资源自身的名称,由路径表示。考虑下面的URI,它表示了当前的HTML 4.0规范: HYPERLINK http:/www.webm http:/www.webm on .c n/html/html40/这个URI是这样的:

2、这是一个可通过HTTP协议访问的资源,位于主机 上,通过路径/html/html40访问。在 HTML 文档中 其它资源包括mailto(收发email)和ftp(FTP访问)。这是URI的另一个例子,指向一个用户的邮箱:Joe Coolv/A注:大多数读者可能熟悉URL,而不是URI。URL是RUI命名机制的一个子集。片段标志符有的URI指向一个资源的内部。这种URI以#结束,并跟着一个anchor标志 符(称为片段标志符)。例如,下面是一个指向section_2的URI: HYPERLINK http:/somesite.eom/html/top.htm%23sectio http:/so

3、mesite.eom/html/top.htm#sectio n_2相对URI相对URI不包含任何命名规范信息。它的路径通常指同一台机器上的资源。相 对URI可能含有相对路径(如,表示上一层路径),还可能包含片段标为了说明相对 URI,假设我们有一个基本的 URI /support/intro.htm 下面的链接中使用了相对URI :Suppliersv/A它扩展成完全的 URI 就是 HYPERLINK /support/suppliers.htm /support/suppliers.htm,下面是一个图像的相对URI:vIMG src=./ico ns/logo.gif alt=logo

4、它扩展成完全的 URI 就是 HYPERLINK /icons/logo.gif%22%e3%80%82 /icons/logo.gif。在HTML中,URI被用来:链接到另一个文档或资源(参看A和LINK元素)。链接到一个外部样式表或脚本(参看LINK和SCRIPT元素)。在页内包含图像、对象或applet(参看IMAG、OBJECT、APPLET和INPUT元素)。建立图像映射(参看MAP和AREA元素)。提交一个表单(参看FORM)。建立一个框架文档(参看FRAME和IFRAME元素)。引用一个外部参考(参看Q、BLOCKQUOTE, INS和DEL元素)。 指向一个描述文档的metad

5、ata(参看HEAD元素)。URL(Uniform Resoure Locator:统一资源定位器)通俗地说,URL是In ter net上用来 描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的 Mosaic。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址 和目录等。URL的格式URL的格式由下列三部分组成:第一部分是协议(或称为服务方式);第二部分是存有该资源的主机IP地址(有时也包括端口号); 第三部分是主机资源的具体地址。,如目录和文件名等。第一部分和第二部分之间用“:”符号隔开,第二部分和第三部分用“/”符号隔开。第一部分 和第二部

6、分是不可缺少的,第三部分有时可以省略。URL示例文件的URL:用URL表示文件时,服务器方式用file表示,后面要有主机IP地址、文件的存取路径(即 目录)和文件名等信息。有时可以省略目录和文件名,但7”符号不能省略。例一: HYPERLINK file:/pub/files/foobar.txt file:/pub/files/foobar.txt代表存放主机上的pub/files/目录下的一个文件,文件名是foobar.txt。 例二:file:/pub代表主机 HYPERLINK ftp:/ftp.yoyod ftp.yoyod yn 上的目录/pub。例三:file:/ 代表主机 HY

7、PERLINK ftp:/ftp.yoyod ftp.yoyod yn 上的根目录。Gopher 的 URL:Gopher服务器有可能使用特殊的端口,在这种情况下,主机IP地址与端口之间要用:隔 开。例一: HYPERLINK gopher:/ gopher:/表示主机 HYPERLINK gopher:/ 上的gopher月服务器。例二: HYPERLINK gopher:/:1234 gopher:/:1234表示主机上的gopher服务器,在端口 1234上。网络新闻的URL:利用URL表示网络新闻组时,如果是use net的话只要指定出新闻组的名字即可。例如:news:rec.gard

8、ening表示use net上的rec.garde ning新闻组(园艺)。HTTP 的 URL:使用超级文本传输协议HTTP,提供超级文本信息服务的资源。URN (Uniform Resource Name,统一资源名称):也用来标识In ter net上的资源,但是它 们通过使用一个独立于位置的名称来实现。三者区别:体系中的URI、URL和URN是彼此关联的。URI的范畴位于体系的顶层,URL和URN的 范畴位于体系的底层。这种排列显示URL和URN都是URI的子范畴URI不能定位或读取/写入资源。这是统一的资源定位器(URL)的任务。URL是一种URI, 但是它的大纲组件是已知的网络协议

9、(简称协议),并且它把URI组件与某种协议处理程 序(一种资源定位器和根据协议建立的约束规则与资源通讯的读/写机制)。URI 一般不能为资源提供持久不便的名称。这是统一的资源命名(URN)的任务。URN也 是一种URI,但是全球唯一的、持久不便的,即使资源不在存在或不再使用。URI是一个更广泛的概念,如URL,URN都是一种URI, 可以说URI是抽象的,而具体使 用URL,URN来定位。URI是用来标识In ter net资源的字符串。URI严格的与Web上一个对象的In ter net地址等 价。URI,URN以及URL具有相似的目标,因此可以互用。URI最抽象最概括;因此,它们 通常用于

10、技术规范之中。例如URI的语法定义可以作为URN与URL语法定义的基础。URN 最为通用,但是它们依赖命名来查找服务,因此依赖于并非总是可以用的额外的服务。URL 最为常用,并且是HTTP与Web软件的基础。JAVA 中的 URI 和 URL: URL和URI都属于JAVA.NET下面的一个类。URI是URL的一个抽象,它不仅包括了统一 资源定位符(URL),还包括了统一资源名(URN).大多数实际应用中使用的URI都是URL,但 是许多规范和标准像XML都是用URI来定义的在java1.4和更新的版本中,URI被 .URI类所表示.这个类与.URL相比有如下3点重要的区别:URI类只关心资源

11、的标识和对URI的解析它没有方法来检索它的URI所标识的资 源。URI类与URL类相比,它更能适应相关的规范。一个URI对象能表示一个相对URI。URL类在存放之前,就已经对所有的URI 进行了“绝对化”的处理。简而言之,一个URL对象就是网络应用层协议进行网络检索的一个代理,而一个URI对 象就只纯粹地做string的解析和操作的工作。URI类没有进行网络检索的能力。URL类有 一些进行string解析的方法。比如getFile()和getRef()方法,但很多都是蹩脚的方法, 总是不完全像有关的规范上所说的那样好用。假如你现在用的是java1.4版本或更新的版本, 这时你就可以做出选择,如

12、果你想下载一个URL指示的内容时,你应该使用URL类;如 果你想使用URI类来进行标识的工作而不是用来检索的时候,你应该用URI类。例如,去 标识一个XML namespace的URI。在一些情况下,当你同时需要实现这两种功能时,你 可以用方法toURL()把一个URI转换成一个URL。在java1.5中,你还能用类URL中 的方法toURI() 把一个URL转换成一个URI。JAVA中构造一个URI:URI从字符串构建。与URL类不同,URI类不依赖于底层协议处理器。只要是URI 语法上正确,Java就不需要为了创建用于表示的URI对象而理解其协议。这样,与URL 类不同,URI类可以用于新

13、的试验性的URI模式。public URI(String uri) throws URISyntaxException这是基本的构造函数,根据任何满足条件的字符串创建一个新的URI对象。例如:URI voice = new URI(tel:+1-800-9988-9938);URI web = new URI( HYPERLINK /pub/a/2003/09/17/stax.html%23id=_hbc /pub/a/2003/09/17/stax.html#id=_hbc);URI book = new URI(ur n:isb n:1-565-92870-9);如果字符串参数不遵循URI

14、语法(例如,如果URI以冒号开头)此构造函数将抛出 URISyntaxException异常。这是一个受查异常,所以需要捕获此异常,或者在调用构造函 数的方法中声明并抛出该异常。但是,有一条语法规则不会检查。与URI规范不同的是, URI中使用的字符不限于ASCII。它可以包括其他Unicode字符,如。在语法上URI没 有多少限制,特别是,如果不再需要对非ASCII字符编码,并且允许相对URI的话,那 就真没有什么限制了。几乎所有字符串都可以解释为URI。public URI(Str ing scheme, Str ing schemeSpecificPart, Stri ng fragme

15、 nt) throwsURIS yn taxExceptio n这个构造函数主要用于非层次URI。模式(scheme)是URI的协议,如http、urn、 tel等等。它必须由ASCII字母、数字及三个标点字符+、-和组成。模式必须以字母 开头。若此参数为null,则省略模式,这样会创建一个相对URI。例如:URI absolute = new URI(http, /, null);URI relative = new URI(null, /javafaq/index.shtml, today);模式特有的部分取决于URI模式的语法;对于http URI是一种情况,对于mailto URI 是

16、另一种情况,对于tel URI又是其他情况。因为URI类会用百分号转义字符来对无效字 符编码,实际上这部分不会有任何语法错误。最后,第三个参数包含一个片段标识符(如果存在的话)。再次说明,片段标识符中禁 止的字符会被自动转义。为此参数传递null就会忽略片段标识符。public URI(Str ing scheme, Str ing host, Stri ng path, Str ing fragme nt)throws URIS yn taxExceptio n这个构造函数用于层次URI,如http和ftp URL。主机和路径一起(用/分隔)组成 URI的模式特有部分例如:URI today

17、= new URI(http, HYPERLINK , /javafaq/index.html, today);将生成 URI HYPERLINK /javafaq/index.html%23today%e3%80%82%e5%a6%82%e6%9e%9c%e6%ad%a4%e6%9e%84%e9%80%a0%e5%87%bd%e6%95%b0%e6%97%a0%e6%b3%95%e6%a0%b9 /javafaq/index.html#today。如果此构造函数无法根 据提供的各部分形成有效的层次URI(例如,如果存在模式,所以URI必须为绝对URI, 但路径没有以/开头),那么它将抛出UR

18、ISyntaxException异常。public URI(Str ing scheme, Str ing authority, Str ing path, Str ing query,Stri ng fragme nt) throws URIS yn taxExceptio n这个构造函数与前一个基本相同,只是添加了一个查询字符串部分。例如:URI today= new URI(http, HYPERLINK , /javafaq/i ndex.html,referrer=c net&date=2004-08-23, today);通常,任何不可转义的语法错误都会导致抛出URISyntaxException异常,所有参数 都可以传递null来忽略这一部分。public URI(Str ing scheme, Str ing userI nfo, Stri ng host, int port, Stri ngpath, Str ing query, Stri ng fragme nt) thro

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论