1.http1.0与http1.1区别
HTTP1.0---客户端与web服务器建立连接后,只能获得一个WEB资源。
HTTP1.1----允许客户端与web服务器建立连接后,在一个连接上获取多个web资源。
2.一个完整的HTTP请求包括:一个请求行,若干请求头,以及实体内容:
请求方式GET:
Z则可以在请求的URL地址后以 ?的形式带上交给服务器的数据,多个数据之间用&进行分隔。
http://index.html?name=xxx & pwd=xxx HTTP/1.1
特点:在URL地址上附带的参数是有限制的,数据容量不超过1K
请求方式POST:
可以在请求的实体内容中向服务器发送数据。传送数据量无限。
3.http请求头详解:
Accept: 用于告诉服务器,客户机支持的数据类型
Accept:text/html,image/*,*/*--表示什么都支持。
Accept-Charset:客户机采用的编码
Accept-Charset:iso-8859-1,utf-8,gbk
Accept-Encoding:客户机支持的数据压缩格式
Accept-Encoding: gizp, compress
Accept-Language: 客户机语言环境
Accept-Language: en-us, zh-cn
Host: 客户机告诉服务器,想访问的主机名。
Host: localhost,192.168.xxxx
-------
If-Modified-Since: 客户机通过这个头告诉服务器,资源缓存时间
If-Modified-Since:
-------
Referer: 客户机告诉服务器,从哪个资源来访问服务器的。防盗链
Referer:www.loogle.com?xxx
------
User-Agent:告诉服务器,客户机的软件环境
User-Agent: Mozilla/4.0(Windows NT 5.0
----
Connection :请求完是保存或关闭链接。
Connection : close(关闭,Keep-Alive(保存)
-----
Date:当前时间
4.HTTP响应头详解:
HTTP/1.1 200 OK ----状态行
Server: Microsoft-IIS/5.0
Date : 2016 00:00:00
Content-Langth: 2291 -----多个消息头
Content-Type: text/HTML
Cache-control: private
-----一个空行
<html>
-----------------------实体内容
</html
Location : 配合302使用,告诉用户找谁。
Server: 告诉浏览器服务器的类型。
Content-Encoding: 数据的压缩格式
Content-Length: 浏览器返回的数据长度
Content-Type: 浏览器返回的数据类型。
Expires: -1/0 则是不缓存。
Cache-Control:on-cache
Pragma:on-cache
以上告诉浏览器不需要数据缓存。
5.
http:请求头字段。
Range(断点下载)头指示服务器只传输一部分web资源,
:
Range: bytes=1000-2000传输范围1000到2000
Range: bytes=1000- 第1000个字节后的所有内容
Range: bytes=1000 传输最后1000个字符。
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class RangeTest {
public static void main(String[] args) throws Exception {
URL url=new URL("http:///index/admin.txt");
HttpURLConnection conn=(HttpURLConnection) url.openConnection();//打开资源。
conn.setRequestProperty("Range", "bytes=5-");//设置Range头
InputStream in=conn.getInputStream();//读取数据
int len=0;
byte buffer[]=new byte[1024];
FileOutputStream out=new FileOutputStream("c:\\admin.txt", true);//true表示接着后面写。
while((len=in.read(buffer))>0){
out.write(buffer, 0, len);
}
in.close();
out.close();
}
}
HTTP响应头字段:
Accept-Range: 服务器是否支持Range,支持返回
Accept-Range:bytes,不支持返回 Accept-Range:none
Content-Range:指定字节范围: