0. 概述
-
概念:
URL(Uniform Resource Locator):统一资源定位符,它表示Internet上某一资源的地址
资源可以是文件或目录这样简单的东西,也可以是对更复杂的对象的引用,例如对数据库或搜索引擎的查询,常见的www,ftp站点等
浏览器通过解析给定的URL可以在网络上查找相应的文件或其他资源
在互联网发展过程中,最重要的三大发明:HTTP+HTML+URL,他们组成了网络的三大基石
-
URI=URL+URN
URI:Uniform Resource Identifier ,统一资源标志符
URL:Uniform Resource Locator,统一资源定位符
URN:Uniform Resource Name,统一资源命名
1. URL组成
1.1 概念:
URL的基本结构由5部分组成:
<传输协议>://<主机名>:<端口号>/<文件名>#片段名?参数列表
<>表示可选
片段名:即锚点,例如在boss直聘上可以直接定位到具体薪资
参数列表格式:参数名=参数值&参数名=参数值…
示例:http://www.example.com/dos/resources1.html
表示要使用的协议是
http
(超文本传输协议),并且该信息驻留在名为www.example.com
的主机上。 该主机上的信息名为/docs/resource1.html
。 主机上此名称的确切含义是依赖于协议和依赖于主机。 信息通常驻留在文件中,但可以在运行中生成
1.2 端口:
-
URL可以选择指定“端口”,该端口是在远程主机上进行TCP连接的端口号。 如果未指定端口,则使用协议的默认端口。 例如,
http
的默认端口为80
。 备用端口可以指定为:http://www.example.com:1080/docs/resource1.html
2. 常用API
- URL类位于java.net包下
- 构造器:
构造器 | 说明 |
---|---|
URL(String spec) | 根据 String 表示形式创建 URL 对象 |
URL(String protocol, String host, int port, String file) | 根据指定协议名、主机名、端口号和文件名创建 URL 对象 |
URL(String protocol, String host, String file) | 根据指定的协议名、主机名和文件名创建 URL |
- 常用API:
方法名 | 说明 |
---|---|
String getProtocol() | 获取此 URL的协议名称 |
String getHost() | 获取此 URL 的主机名 |
int getPort() | 获取此 URL 的端口号 |
String getPath() | 获取此 URL 的文件路径 |
String getFile() | 获取此 URL 的文件名 |
String getQuery() | 获取此 URL的查询部分 |
URLConnection openConnection() | 返回一个URLConnection实例,表示与URL引用的远程对象的URL |
int getDefaultPort() | 获取与此 URL 关联的协议的默认端口号 |
-
抽象类
URLConnection
(不是URL的子类)是表示应用程序和URL之间的通信链接的所有类的超类此类的实例可用于读取和写入URL引用的资源
-
URLConnection类中的常用API:
方法名 | 说明 |
---|---|
InputStream getInputStream() | 返回从此打开的连接读取的输入流 |
- HttpURLConnection和JarURLConnection是URLConnection的子类
- 其中JarURLConnection是用于连接到Java ARchive(JAR)文件或jar文件中的条目的
- HttpURLConnection支持HTTP特定功能,可用于向应用程序发出请求交互数据
3. 示例
3.1 简单示例:
import java.net.MalformedURLException;
import java