版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chennai1101/article/details/84783726
1. URI统一资源标识符
URI(Uniform Resource Identify),统一资源标识符,是一个用于标识某一互联网资源名称的字符串。
URI的结构是 [scheme:]scheme-specific-part[#fragment]
和[scheme:][//authority][path][?query][#fragment]
String[] address = new String[]{
"http://user:[email protected]:8080/a/b/c?q=java#fragment",
"tel:+123-4567-8910#frag"
};
for (String addr : address) {
URI uri = new URI(addr);
System.out.println("URL: " + uri);
System.out.println("Scheme: " + uri.getScheme());
if (uri.isOpaque()) {
System.out.println("Specific: " + uri.getSchemeSpecificPart());
} else {
System.out.println("UserInfo: " + uri.getUserInfo());
System.out.println("Authority: " + uri.getAuthority());
System.out.println("Host: " + uri.getHost());
System.out.println("Port: " + uri.getPort());
System.out.println("Path: " + uri.getPath());
System.out.println("Query: " + uri.getQuery());
}
System.out.println("Fragment: " + uri.getFragment());
}
opaque表示URI是不是透明的,一个不透明的URI一般是不分层次的。输出
URL: http://user:[email protected]:8080/a/b/c?q=java#fragment
Scheme: http
UserInfo: user:pwd
Authority: user:[email protected]:8080
Host: www.abc.com
Port: 8080
Path: /a/b/c
Query: q=java
Fragment: fragment
URL: tel:+123-4567-8910#frag
Scheme: tel
Specific: +123-4567-8910
Fragment: frag
2. URL统一资源定位符
URL(Uniform Resource Location),统一资源定位符,可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。URL主要由Protocol://Authority/File#ref
组成。
String[] address = new String[]{
"http://user:[email protected]:80/a/b/c?q=java#fragment",
"ftp://www.abc.com:8080/"
};
for (String addr : address) {
URL url = new URL(addr);
System.out.println("URL: " + url);
System.out.println("Protocol: " + url.getProtocol());
System.out.println("UserInfo: " + url.getUserInfo());
System.out.println("Authority: " + url.getAuthority());
System.out.println("Host: " + url.getHost());
System.out.println("Port: " + url.getPort());
System.out.println("DefaultPort:" + url.getDefaultPort());
System.out.println("Path: " + url.getPath());
System.out.println("File: " + url.getFile());
System.out.println("Query: " + url.getQuery());
System.out.println("Ref: " + url.getRef());
}
其中Authority包含UserInfo、Host和Port,File由Path和Query组成。输出
URL: http://user:[email protected]:80/a/b/c?q=java#fragment
Protocol: http
UserInfo: user:pwd
Authority: user:[email protected]:80
Host: www.abc.com
Port: 80
DefaultPort:80
Path: /a/b/c
File: /a/b/c?q=java
Query: q=java
Ref: fragment
URL: ftp://www.abc.com:8080/
Protocol: ftp
UserInfo: null
Authority: www.abc.com:8080
Host: www.abc.com
Port: 8080
DefaultPort:21
Path: /
File: /
Query: null
Ref: null
3. URLEncoder和URLDecoder
将非文本内容转换成"%xx"的形式。