访问Internet网络资源
java.net包中还有URL、URLDecoder、URLEncoder、URLConnection、HttpURLConnection等类。
本节讲解的内容:
·URL(统一资源定位符)
·HTTP协议
·URL类
·工厂设计模式
·URLConnection和HttpURLConnection类
URL(Uniform Resource Locator)
·URL的基本组成:协议、主机名、端口号、资源名。
例如,http://www.it315.org:8080/index.html
http协议的默认端口是80
·相对URL,例如"/a.html"、"./a.html"、"../..a.html"、"a.html"。
"./a.html"的形式表示的意思与"a.html"的形式是一样的,都是表示资源当前目录下的文件。
·URL编码规则:
-将空格转换为加号(+)
-对0-9,a-z,A-Z之间的字符保持不变。
-对于所有其他的字符,用这个字符的当前字符集编码在内存中的十六进制格式表示,
并在每个字节前加上一个百分号(%)。如字符“+”用2B表示,字符“=”用%3D表示,
字符“&”用%26表示,每个中文字符在内存中占两个字节,字符“中”用%D6%D0表示,
字符“国”用%B9%FA表示。
-对于空格也可以直接使用十六进制编码方式,即用%20表示,而不是将它转换成加号(+)。
·java.net包中提供了URLEncoder和URLDecoder这两个类,来实现URL编码和解码。
HTTP协议的会话过程
基于HTTP1.0协议的客户机与服务器的信息交换过程
客户机 服务器
建立连接-------->
发送请求信息---->
发出相应信息<----
关闭连接<--------
基于HTTP1.1协议的客户机与服务器的信息交换过程
客户机 服务器
建立连接------->
发出第1次请求-->
... ...
发出第n次请求-->
发出第1次响应<--
... ...
发出第n次响应<--
发出关闭连接请求-->
关闭连接<-------
HTTP请求消息
一个完整的请求消息包括:一个请求行、若干消息头、以及实体内容。例如:
GET /articles/news/today.asp HTTP/1.1
Accept:*/*
Accept-Language:en-us
Connection:Keep-Alive
Host:localhost
Referer:http://localhost/links.asp
User-Agent:Mozilla/4.0(compatible;MSIE5.5;Windows NT 5.0)
Accept-Encoding:gzip,deflate
HTTP响应消息
一个完整的响应消息包括:一个状态行、若干消息头、以及实体内容。
例如:
HTTP/1.1 200 OK
Server:Microsoft-IIS/5.0
Date:Thu,13Jul 2000 05:46:53 GMT
Content-Length:2291
Content-Type:text/html
Set-Cookie:ASPSE SSIONIDQQGGGNCG=LKLDFFKCINFLDMFHCBCBMFLJ;path=/
Cache-control:private
<HTML>
<BOOY>
... ...