网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  java网络编程之uri、url研究专题一(图)     
  文章作者:未知  文章来源:水木森林  
  查看:96次  录入:管理员--2007-11-17  
 
  uri、url和urn是识别、定位和命名互联网上的资源的标准途径。本文分析了uri、url和urn和java api的uri和url类(以及与url相关的类),并演示了如何在程序中使用这些类。
  
  1989年tim berners-lee发明了互联网(world wide web)。www被认为是全球互连的实际的和抽象的资源的集合--它按需求提供信息实体--通过互联网访问。实际的资源的范围从文件到人,抽象的资源包括数据库查询。
  
  因为要通过多样的方式识别资源(人的名字可能相同,然而计算机文件只能通过唯一的路径名称组合访问),所以需要标准的识别www资源的途径。为了满足这种需要,tim berners-lee引入了标准的识别、定位和命名的途径:uri、url和urn。
  
  uri、url和urn是什么?
  
  体系中的uri、url和urn是彼此关联的。uri的范畴位于体系的顶层,url和urn的范畴位于体系的底层。这种排列显示url和urn都是uri的子范畴,如图1所示:
  
java网络编程之uri、url研究专题一(图)

  图1:uri、url和urn之间的层次关系。url和urn是uri的子范畴
  
  uri表示的是统一的资源标识,它是以某种统一的(标准化的)方式标识资源的简单字符串。典型情况下,这种字符串以scheme(命名uri的名字空间的标识符--一组相关的名称)开头,语法如下:
  
  [scheme:] scheme-specific-part
  
  uri以scheme和冒号开头。scheme用大写/小写字母开头,后面为空或者跟着更多的大写/小写字母、数字、加号、减号和点号。冒号把scheme与scheme-specific-part分开了,并且scheme-specific-part的语法和语义(意思)由uri的名字空间决定。
  
  其中一个例子是http://www.cnn.com,其中http是scheme,//http://www.cnn.com是 scheme-specific-part,并且它的scheme与scheme-specific-part被冒号分开了。
  
  我们可以把uri按照绝对的或相对的分类。绝对的uri指以scheme(后面跟着冒号)开头的uri。前面提到的http://www.cnn.com就是绝对的uri的一个例子,其它的例子还有mailto:jeff@javajeff.com、news:comp.lang.java.help和xyz://whatever。你可以把绝对的uri看作是以某种方式引用某种资源,而这种方式对标识符出现的环境没有依赖。
  
  如果使用文件系统作类比,绝对的uri类似于从根目录开始的某个文件的路径。与绝对的uri不同的,相对的uri不是以scheme(后面跟着冒号)开始的uri。
  
  它的一个例子是articles/articles.html。你可以把相对的uri看作是以某种方式引用某种资源,而这种方式依赖于标识符出现的环境。如果用文件系统作类比,相对的uri类似于从当前目录开始的文件路径。
  
  uri可以进一步分为不透明的和分层的两类。不透明的uri指scheme-specific-part不是以正斜杠(/)开头的绝对的uri。
  
  其例子有news:comp.lang.java和前面的mailto:jeff@javajeff.com。不透明的uri并不是用于分解的(超出了识别scheme的范畴),因为不需要验证scheme-specific-part的有效性。与它不同的是,分层的uri可以是以正斜杠开头的绝对的uri或相对的url。
  
  与不透明的uri不同,分层的uri的scheme-specific-part必须被分解为几个组成部分。这些组成部分是什么?分层的uri标识组件的普通子集的scheme-specific-part符合下面的语法:
  
  [//authority] [path] [?query] [#fragment]
  
  可选的authority组件标识了该uri名字空间的命名机构。如果有这一部分,它就是以一对正斜杠开始的,它可以是基于服务器或基于注册的,并且它以后面的正斜杠、问号或没有其它符号结束。基于注册的授权机构组件有特定大纲的语法(本文没有讨论,因为很少使用它),而基于服务器的授权机构组件的语法如下:
  
  [userinfo@] host [:port]
  
  按照这种语法,基于服务器的授权机构组件可以随意的以用户信息(例如用户名)开始,后面跟着一个@符号,紧接着是主机的名称,以及冒号和端口号。例如jeff@x.com:90就是一个基于服务器的授权机构组件,其中jeff包含了用户信息,x.com包含了主机,90包含了端口。
  
  可选的path组件根据授权机构组件(如果提供了)或大纲(如果没有授权机构组件)识别资源的定位(或位置)。路径(path)可以分成一系列的路径片断(path segment),每个路径片断使用正斜杠与其它的路径片断隔开。
  
  如果路径的第一个路径片断以一个正斜杠开始,该路径就被认为是绝对的。否则路径就被认为是相对的。例如,/a/b/c由三个路径片断--a、b和c组成了一个路径,此外,这个路径是绝对的,因为第一个路径片断(a)的前缀是正斜杠。
  
  可选的query组件识别要传递给某种资源的数据。这种资源使用该数据获取或生成其它的传递回调用者的数据。例如,http://www.somesite.net/a?x=y, x=y就是一个查询(query),在这个查询中,x=y是传递给某种资源的数据--x是某种实体的名称,y是该实体的值。
 
 
上一篇: java网络编程之uri、url研究专题二    下一篇: 用java编写简单的udp网络通信程序
  相关文档
实例学习 struts 11-17
java初学者实践教程25-多线程 11-20
j2ee基础:mvc模式和struts模式的理解 11-16
java程序员需要了解的几个开源协议 11-16
煮酒论英雄,漫谈java数据库存取技术 11-16
用mylar进行以任务为中心的编程 11-17
java编程语言中创建和使用日期的详细介绍 04-09
了解考试系列:二级java语言的软件环境、考试时间、考试题型及.. 11-16
1100行代码设计一个线程池 11-17
java中文件操作大全 11-17
java中threadlocal的设计与使用 11-16
从零开始学 java (一) hello world 左光 2005.4 11-17
java高级:多核线程-volatile原理与技巧 11-16
好的java风格 11-17
一些非常有用的java常用方法( 2) 11-17
cmp实体bean实战开发 11-17
eclipse插件开发之新手入门 11-16
一种 web 应用程序级别的 cluster 实现技术 11-17
java基础入门学习——事件模型(组图) 11-17
java设计模式研究之flyweight模式 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息