一、
HTTP报文由从客户机到服务器的请求和从服务器到客户机的响应构成。
1.
1.HTTP请求行
请求头信息(通用信息头+请求头+实体头)
空行
可选的消息体
1.(注:请求行和标题必须以<CR><LF> 作为结尾(即回车换行)。
1.空行内必须只有<CR><LF>而无其他空格。在HTTP/1.1 协议中,所有请
1.求头,除Host外,都是可选的。)
请求实例1 :
GET /index.html HTTP/1.1
Host: gpcuster.cnblogs.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
If-Modified-Since: Mon, 25 May 2009 03:19:18 GMT
CRLF
请求实例 2:
POST /reg.jsp HTTP/1.1
Accept:image/gif, image/x-xbit, …
Host: www.winsunlight.com
Content-Length: 22
Accept-Encoding: gzip,deflate
Connection: Keep-Alive
Cache-Control:no-cache
CRLF
user=zhangsan&pwd=1234
2.
2.HTTP状态行
2.响应头信息(通用信息头+响应头+实体头)
空行
可选的消息体
实例:
HTTP/1.1 200 OK
Content-Length:2218
Content-Type: text/html
Last-Modified: Mon, 25 May 2009 03:20:03 GMT
Accept-Ranges:bytes
ETag:W/”80b1a4c018f3c41:831d”
Server: Microsoft-IIS/7.0
Date: Mon, 25 May 2009 03:20:02 GMT
CRLF
<html>
3.
3.(1)通用信息头
3.即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关
3.系的信息头.
3.主要: Cache-Control , Connection , Data , Pragma , Trailer , Transfer-
3.Encoding , Upgrade
3.(2)请求头
3.用于在请求消息中向服务器传递附加信息,主要包括客户端可以接受的数
3.据类型,压缩方法,语言,以及客户计算机上保留的Cookie信息和发出该请求
3.的超链接源地址等.
3.主要: Host, Accept, Accept-Charset, Accept-Encoding, Accept-
3.Language, User-Agent, Range, Referer, Authorization
(3)响应头
用于在响应消息中向客户端传递附加信息,包括服务程序的名称,要求客户
端进行认证的方式,请求的资源已移动到新地址等.
主要: Location , Server , WWW-Authenticate(认证头)
(4)实体头
用做实体内容的元信息,描述了实体内容的属性,包括实体信息的类型,长度,
压缩方法,最后一次修改的时间和数据的有效期等.
主要: Allow, Content-Encoding , Content-Language , Content-Length ,
Content-Location , Content-MD5, Content-Range, Content-Type,
Expires
(5)扩展头
在HTTP消息中也可以使用一些HTTP/1.1正式规范里没有定义的头字段,
这些头字段统称为自定义的HTTP头字段或扩展头,它们通常被当做一个
实体头来处理。
主要:Refresh, Content-Disposition, Cookie, Set-Cookie