HTTP请求
客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。一个完整的HTTP请求包括如下内容:
一个请求行、若干消息头、以及实体内容,如下所示 :
关于Get和Post请求方式:
•常用的有: GET、 POST
•用户如没有设置,默认情况下浏览器向服务器发送的都是get请求,例如在浏览器直接输地址访问,点超链接访问等都是get,用户如想把请求方式改为 post,可通过更改表单的提交方式实现。
l不管POST或GET,都用于向服务器请求某个WEB资源,这两种方式的区别主要表现在数据传递上:
•如请求方式为GET方式,则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔,例如:
•GET /mail/1.html?name=abc&password=xyz HTTP/1.1
•GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K。
•如请求方式为POST方式,则可以在请求的实体内容中向服务器发送数据,Post方式的特点:传送的数据量无限制。
HTTP请求的细节——消息头
l用于HTTP请求中的常用头
•Accept: text/html,image/* 用于告诉服务器,客户机所支持的数据类型
•Accept-Charset: ISO-8859-1 用于告诉服务器,客户机所采用的码表
•Accept-Encoding: gzip,compress 用于告诉服务器,客户机所支持的数据压缩格式
•Accept-Language: en-us,zh-cn 用于告诉服务器,客户机的语言环境,用于国际化
•Host: www.it315.org:80 用于告诉服务器,客户机想访问服务器哪台主机
•If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT 与缓存相关,用于告诉服务器,客户机对于资源的最后缓存时间
•Referer: http://www.it315.org/index.jsp 用于告诉服务器,客户机是从哪个页面去访问服务器的 (防盗链)
•User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) 用于告诉服务器,客户机的机器环境(例如所使用的操作系统,浏览器版本号)
•Cookie 客户端通过这个头字段,可以带一些数据给服务器
•Connection: close/Keep-Alive 客户端通过这个头字段告诉服务器,请求完成后,是保持链接还是关闭链接
•Date: Tue, 11 Jul 2000 18:23:51 GMT
HTTP响应
l一个HTTP响应代表服务器向客户端回送的数据,它包括:
一个状态行、若干消息头、以及实体内容 。
HTTP响应细节——常用响应头
lHTTP请求中的常用响应头
•Location: http://www.it315.org/index.jsp 通常配合302状态码使用,服务器使用这个头告诉浏览器去找谁
•Server:apache tomcat 服务器通过这个头告诉浏览器,服务器的类型
•Content-Encoding: gzip 服务器通过这个头告诉浏览器,数据的压缩格式(gzip)
•Content-Length: 80 服务器通过这个头告诉浏览器,回送数据的长度
•Content-Language: zh-cn
•Content-Type: text/html; charset=GB2312 服务器通过这个头告诉浏览器,回送数据的类型
•Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT 服务器通过这个头告诉浏览器,数据的最后修改时间
•Refresh: 1;url=http://www.it315.org 服务器通过这个头告诉浏览器,多长时间定时刷新
•Content-Disposition: attachment; filename=aaa.zip 控制浏览器以下载方式打开回送的数据
•Transfer-Encoding: chunked 服务器通过这个头告诉浏览器,数据是以块方式回送的
•Set-Cookie:SS=Q0=5Lb_nQ; path=/search
•ETag: W/"7777-1242234904000"
•Expires: -1 控制浏览器缓存数据的时间(-1或0,代表控制浏览器不要缓存)
•Cache-Control: no-cache
•Pragma: no-cache 以上三个头一起用,就可以控制所有的浏览器不要缓存数据
•Connection: close/Keep-Alive
•Date: Tue, 11 Jul 2000 18:23:51 GMT