模拟试题:Java网络编程之URI、URL研究专题二
最后一个组件是fragment。尽管该组件作为uri的一部分出现,但不是绝对的。当使用uri进行某种检索操 ...
最后一个组件是fragment。尽管该组件作为uri的一部分出现,但不是绝对的。当使用uri进行某种检索操作时,后面执行操作的软件使用fragment聚焦于软件感兴趣的资源部分(在该软件成功检索到资源的数据后)。
为了实际表现前面提到的组件信息,可以使用下面的uri:
Ftp://george@x.com:90/public/notes?text=shakespeare#hamlet
上面的uri把ftp识别为大纲,把george@x.com:90识别为基于服务器的授权机构(其中george是用户信息,x.com是主机,90是端口),把/public/notes识别为路径,把text=shakespeare识别为查询,把hamlet识别为片断。
本质上它是一个叫做george的用户希望通过/public/notes路径在服务器x.com的90端口上检索shakespeare文本的hamlet信息。在shakespeare成功的返回到该程序后,程序定位hamlet段并把它呈献给该用户。
标准化可以通过目录术语来理解。假定目录x直接位于根目录之下,x有子目录a和b,b有文件memo.txt,a是当前目录。为了显示memo.txt中的内容(在微软windows下),你可能输入type /x/./b/memo.txt。
你也可能输入type /x/a/../b/memo.txt,在这种情况下,a和..的出现是没有必要的。这两种形式都不是最简单的。但是如果输入/x/b/memo.txt,你就指定了最简单的路径了,从根目录开始访问memo.txt。最简单的/x/b/memo.txt路径就是标准化的路径。
通常通过基本的和相对的uri访问资源。基本的uri是绝对的uri,它唯一地标识了某种资源的名字空间,而相对的uri标识了与基础的uri相对的资源。(与基本的uri不同,相对的uri在某种资源的生存周期内可以永远不需要改变)。因为基本的和相对的uri都不能完整的识别某种资源,有必要把两种uri通过解析过程合并。相反地,通过相对化从合并的uri中提取相对的uri也是可行的。
注意
不透明的uri与其它的uri不同,它不服从标准化、分解和相对化。
假定你把x://a/作为基础的uri,并把b/c作为相对的uri。根据基础uri分解这个相对的uri将产生x://a/b/c。根据x://a/相对化x://a/b/c将产生b/c。