Java 网络编程之 URI、URL 研究
网络编程之 、 研究
、 和 是识别、定位和命名互联网上的资源的标准途径。本文分析
了 、 和 和 的 和 类(以及与 相关的类),
并演示了如何在程序中使用这些类。
年 发明了互联网(
)。 被认为是全球互连的实际的和抽象的资源的集合它按需求提
供信息实体通过互联网访问。实际的资源的范围从文件到人,抽象的资源包
括数据库查询。因为要通过多样的方式识别资源(人的名字可能相同,然而计
算机文件只能通过唯一的路径名称组合访问),所以需要标准的识别 资
源的途径。为了满足这种需要, 引入了标准的识别、定位和
命名的途径:、 和 。
、 和 是什么?
体系中的 、 和 是彼此关联的。 的范畴位于体系的顶层,
和 的范畴位于体系的底层。这种排列显示 和 都是 的
子范畴,如图 所示:
图 :、 和 之间的层次关系。 和 是 的子范畴。
表示的是统一的资源标识,它是以某种统一的(标准化的)方式标识
资源的简单字符串。典型情况下,这种字符串以 (命名 的名字空
间的标识符一组相关的名称)开头,语法如下:
!"#"$
以 和冒号开头。% 用大写&小写字母开头,后面为空
或者跟着更多的大写&小写字母、数字、加号、减号和点号。冒号把
与 "#"$ 分开了,并且 "#"$ 的语法和语
义(意思)由 的名字空间决定。其中一个例子是 $$" &&'''((,
其中 $$" 是 ,&&$$" &&'''(( 是 "#"$,
并且它的 与 "#"$ 被冒号分开了。
我们可以把 按照绝对的或相对的分类。绝对的 指以 (后面跟
着冒号)开头的 。前面提到的 $$" &&'''(( 就是绝对的 的一
个例子,其它的例子还有
$ )*+))*(、' "(,()(" 和 -./ &&
'$。你可以把绝对的 看作是以某种方式引用某种资源,而这种方
式对标识符出现的环境没有依赖。如果使用文件系统作类比,绝对的 类似