uri(Uniform Resource Identifier)统一资源标识符
1.定义位置:RFC 2396: Uniform Resource Identifiers (URI):Generic Syntax
修正位置:RFC 2732:Format for Literal IPv6 Addresses in URLs
2.语法:[scheme:]scheme-specific-part[#fragment]
[...] 用于描述可选组成部分,字符 : 和 # 代表它们自身
3.分类
3.1相对uri和绝对uri
依据是否有schema部分来判断,绝对URI 指定了方案(scheme),非绝对的 URI 称为相对 URI.
3.2不透明uri
不透明URI肯定是绝对uri, scheme-specific-part部分无法进行进一步的分解和解析,不是以斜
线字符 ('/') 开始,比如
mailto:java-net@java.sun.com
news:comp.lang.java
urn:isbn:096139210x
3.3分层uri
3.3.1语法[scheme:][//authority][path][?query][#fragment]
[...] 用于描述可选组成部分,字符:、/、? 和 # 代表它们自身
3.3.2相对URI和绝对URI
如果分层 URI 的路径组成部分以斜线字符 ('/') 开始,则此URI
为绝对URI,否则为相对URI
3.3.3基于服务器的授权和基于注册表的授权
分层URI的授权组成部分[//authority]可以为基于服务器的或者基于注册表的.
基于服务器的授权语法为[user-info@]host[:port],不是采用这种语法的都
是基于注册表的。
4.组成部分
分为方案[schema:],特定于方案的部分scheme-specific-part,片段 [fragment]
授权[//authority],用户信息[user-info@],主机host,端口[:port],路径[path]
查询[?query]这九个部分,比如这个URI中
http://test@www.test.com:80/test/test.html?id=12345#28
方案部分为http:
特定于方案的部分为//test@www.test.com:80/test/test.html?id=12345
片段部分为#28
授权部分为test@www.test.com:80
用户信息部分为test@
主机部分为www.test.com
端口部分为:80
路径部分为/test/test.html
查询部分为?id=12345